log4net日志过大自动分割

<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放另一个日志文件。

猜你喜欢

转载自blog.csdn.net/u010178308/article/details/84302993