<appender name="RollingLogDebugFileAppender" type="log4net.Appender.RollingFileAppender">
<!--定义文件存放位置-->
<file value="Log\\Alarms\\"/>
<appendToFile value="true"/>
<rollingStyle value="Composite"/>
<preserveLogFileNameExtension value="true"/>
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd\\yyyyMMdd HHmm\\yyyy-MM-dd HH'点.txt'"/>
<staticLogFileName value="false"/>
<!--定义文件最大个数,超过按顺序删除-->
<param name="MaxSizeRollBackups" value="-1"/>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<maximumFileSize value="10MB" />
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="Info" />
<levelMax value="Info" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<!--每条日志末尾的文字说明-->
<!--输出格式-->
<!--样例:2008-03-26 13:42:32,111 [10] INFO Log4NetDemo.MainClass [(null)] - info-->
<conversionPattern value="%newline %n%date: %message%newline %n"/>
</layout>
</appender>
下面就几个重要设置项进行说明:
<rollingStyle value="Composite"/>
此处不能设置为static
<preserveLogFileNameExtension value="true"/>
这个保证在日志分割时,新日志的序号会添加在后缀名之前,如
log.1.txt
而不是
log.txt.1
<param name="MaxSizeRollBackups" value="-1"/>
其值大于0时,日志超过指定数量后,会生成新文件,旧文件会按顺序被删除(这在.NET Framework4.0中有bug,就文件删除不掉);
其值等于0时,日志超过指定大小后,就不再记录
其值小于0时,日志不限定个数。
注意,此个数的限定为单个文件夹中文件个数的限制。当一个文件夹的文件个数过多时,会严重影响程序日志程序的性能。所以,单个文件夹中日志个数不宜过多。当单个文件夹中日志过多时,要考虑分目录。可通过设置
<datePattern value="yyyy\\yyyyMM\\yyyyMMdd\\yyyyMMdd HHmm\\yyyy-MM-dd HH'点.txt'"/>
来分目录。
<maximumFileSize value="10MB" />
单个文件的最大大小,超过这一大小时,文件会被分割。
但是这不会将单个字符串分割到两个日志文件中去。如果一个字符串11MB,那单个文件就是11MB,不会把该字符串的前10MB放一个日志文件,后1MB放另一个日志文件。