一,log4net是什么
log4net架构下用于记录日志的开源组件,功能相当完善,免去了我们重复造轮子。我想不管是winform还是web都需要记录日志。
官网下载地址:http://logging.apache.org/log4net/
SDK地址:http://logging.apache.org/log4net/release/sdk/index.html
二,怎样使用
新建了一个LogHelper类包装了一下,自己使用起来也方便。
注意这一句[assembly:log4net.Config.XmlConfigurator(Watch=true)]不要忘了,否则读不到配置文件
2,配置文件
在应用程序配置文件中配置的话,要加入下面的这个section
<section name ="log4net" type ="System.Configuration.IgnoreSectionHandler"/>
大多数情况我们都会用RollingFileAppender的记录方式,这个可以实现回滚,log文件满了会新建log1,log2进行记录。
看看下面的官方举例
1)按照文件大小分块。满100KB,会记入新的文件,最大10个文件后重新覆盖第一个文件。文件名如:log,log1,log2
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="log.txt" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="100KB" /> <staticLogFileName value="true" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender>
2)按照时间分块。后缀名带时间格式。如:log20070102
3)按照时间和大小一起分组。保留每天的前10个1M的log文件。
4)每次程序启动都用一个单独的log,下次启动将上次的备份。
filter过滤级别:
Appender部分参数的含义:
file:指定log文件名。如:<file value="log.txt" />
appendToFile:true表示在文件末尾追加,false:覆盖原有信息。这个应该是程序重新启动后对原log文件的处理方式,而不是指每写一次
都覆盖。
rollingStyle:Size表示按大小分块,Date表示按日期分块(这和datePattern指定的格式有极大的关系,如指定为“yyyyMMddHHmm”则没分钟都会生成一个log文件)。Composite表示兼容模式,前面两种模式同时制约有效。
datePattern:分组文件的日期后缀格式。如指定为“yyyyMMddHHmm”,生成的文件就是:log.txt201206211708。
maxSizeRollBackups:分块数。如:<maxSizeRollBackups value="10" />最大可以分成10个文件。
maximumFileSize:每个文件的最大Size。
staticLogFileName :true代表由file指定的文件名是固定的,也就是每次写入的都是log.txt这个文件。false:表示文件名不是固定的。rollingStyle为Date,Composite,这个属性不要指定。
conversionPattern:log出力的格式,这其中有很多log4net定义的参数,具体含义如下:
%thread 线程ID。
%message或%m 输出的消息内容。
%date{yyyy/MM/dd HH:mm:ss fff}:日期时间,不指定{}里的内容的话将使用默认格式,精确到毫秒。%d
%-5level log的级别,-5表示占用5个字符(左)。
%logger 表示调用log.Info,log.Error的类的全名。
%property{NDC} 输出NDC里的内容。
%newline或%n 换行。
%X{mdcName} 输出MDC里名为“mdcName”的对象的值。
root:这里定义了要使用的appender,通过appender-ref定义,还可以指定log的输出级别,通过level指定。
在App.config中的一个完整配置:
三,理解配置文件
1,配置文件最详细的解释无疑是官方文档
http://logging.apache.org/log4net/release/config-examples.html
2,PatternLayout的参数该如何配置,每个参数的意思是什么,往往让我们感到迷惑。
在这里能找到全部的答案。(官方的当然是最详细的)
http://logging.apache.org/log4net/release/sdk/log4net.Util.PatternString.html
http://logging.apache.org/log4net/release/sdk/log4net.Layout.PatternLayout.html
浙公网安备 33010602011771号