尝试不每秒创建新文件,但是如果文件限制超出限制,则使用log4net创建新文件

时间:2019-02-14 10:41:33

标签: c# log4net log4net-configuration log4net-appender

我正在尝试创建命名约定为Service_HH_mm_ss.txt的文件。

文件命名格式为

<file type="log4net.Util.PatternString" value="C:\\Log\\%date{yyyy-MM-dd}\\Service_%date{HH_mm_ss}.log" />

我也将文件的最大大小指定为

<rollingStyle value="Size" />      
<maximumFileSize value="10KB" />

仅当大小超过10KB时我才想创建新文件,但是每一秒都在创建新文件。

找不到解决方案。

配置文件代码为:
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="C:\\Log\\%date{yyyy-MM-dd}\\Service_%date{HH_mm_ss}.log" />
<encoding value="utf-8" /> <appendToFile value="true" /> <rollingStyle value="Size" /> <maxSizeRollBackups value="20" /> <maximumFileSize value="10KB" /> <staticLogFileName value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %level - %message%n" /> </layout>

有可能做我想做的事,我没有得到任何解决办法。

1 个答案:

答案 0 :(得分:1)

在Appender定义中,“文件名”的值每秒更改一次。因此log4net每秒创建一个新文件。如果需要确切的时间作为文件名的一部分,则可以使用滚动样式“复合”并添加DatePattern,如下所示:

<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\\Log\\%date{yyyy-MM-dd}\\Service_" />

  <encoding value="utf-8" />
  <appendToFile value="true" />
  <rollingStyle value="Composite" />
  <datePattern value = "HH_mm_ss'.log'"
  <maxSizeRollBackups value="20" />
  <maximumFileSize value="10KB" />
  <staticLogFileName value="false" />
  <layout type="log4net.Layout.PatternLayout">
     <conversionPattern value="%date %level - %message%n" />
  </layout>