log4Net(写入日志文件)
这里就简单介绍下log4Net对写入日志文件的一些了解,写入数据库类似,就不在一一介绍了。
首先去log4net下载.
然后我们新建一个控制台应用程序,并引入log4net.dll程序集,log4net/bin/net/4.5/release/log4net.dll
接下来,我们在app.config配置如下。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!--log4Net块配置-->
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<!-- Define some output appenders -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<!--输出文件路径-->
<file value="D:\\test.txt"/>
<appendToFile value="true"/>
<!--最多10个日志备份文件-->
<maxSizeRollBackups value="10"/>
<!--每个文件最大1M-->
<maximumFileSize value="1024KB"/>
<!--回滚的格式按照大小-->
<rollingStyle value="Size"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<!--输出内容 分别为:%date日期,%thread线程ID,(%-5level)等级,(%logger)初始配置时自定义的名字,%message消息,%newline换行-->
<conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
</layout>
</appender>
<root>
<!--输出等级限制-->
<!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF-->
<!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录-->
<!--如果没有定义LEVEL的值,则缺省为DEBUG-->
<level value="DEBUG"/>
<appender-ref ref="RollingLogFileAppender"/>
</root>
</log4net>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
然后我们在Program.cs使用如下。
//从配置文件读取log4net的配置,然后进行一个初始化工作。 log4net.Config.XmlConfigurator.Configure(); //创建一个实例,名字可随便取 ILog logWriete = log4net.LogManager.GetLogger("Demo2"); //这里输出的类型为error logWriete.Error("哈哈");
Console.WriteLine("成功!");
Console.ReadKey();
接下效果如下:
---------------------------------------------------------------华丽分割线---------------------------------------------------------------------
有些时候,我们要把为了区分配置,把log4Net的配置独立在一个文件里。
在这里,我就在当前项目的根目录下,创建一个config或者是XML文件。
这里我就创建一个名字为log4Net.xml文件。
其次,我们右键=》属性,把《复制到输出目录》项改为始终赋值。
并配置 logNet.xml内容如下。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <!--log4Net块配置--> <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> </configSections> <log4net> <!-- Define some output appenders --> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <!--输出文件路径--> <file value="D:\\test.txt"/> <appendToFile value="true"/> <!--最多10个日志备份文件--> <maxSizeRollBackups value="10"/> <!--每个文件最大1M--> <maximumFileSize value="1024KB"/> <!--回滚的格式按照大小--> <rollingStyle value="Size"/> <staticLogFileName value="true"/> <layout type="log4net.Layout.PatternLayout"> <!--输出内容 分别为:%date日期,%thread线程ID,(%-5level)等级,(%logger)初始配置时自定义的名字,%message消息,%newline换行--> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/> </layout> </appender> <root> <!--输出等级限制--> <!--控制级别,由低到高: ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF--> <!--比如定义级别为INFO,则INFO级别向下的级别,比如DEBUG日志将不会被记录--> <!--如果没有定义LEVEL的值,则缺省为DEBUG--> <level value="DEBUG"/> <appender-ref ref="RollingLogFileAppender"/> </root> </log4net> </configuration>
然后,我们把app.config中的所有log4Net配置都去掉。
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> </configuration>
最后我们在Program.cs使用如下。
//从配置文件读取log4net的配置,然后进行一个初始化工作。 log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"log4Net.xml"));//这里指定路径 /* 有些人,是直接在调用类命名上面直接打上,[assembly: log4net.Config.XmlConfigurator(ConfigFile = @"log4Net.xml", Watch = true)]这一句也是可以的。 其次,只要是ConfigureAndWatch上面这一句 在lognet.xml文件中的<<log4Net块配置>>是可以去掉的。 */ //创建一个实例,名字可随便取 ILog logWriete = log4net.LogManager.GetLogger("Demo2"); //这里输出的类型为error logWriete.Error("哈哈"); Console.WriteLine("成功!"); Console.ReadKey();
注意事项。
1:如果报错,请查看配置节点。
2:如果没报错,而并没有输出文件,请查看调用的时候是否有初始化配置这一句代码。
本文结束。
如果问题,欢迎讨论,咨询,建议,意见。