3

我有一个滚动文件附加程序,每天晚上它都会滚动文件。但是,当它滚动时,新文件只有一个日志条目。似乎该文件不再附加日志条目。如果我重新启动服务,它会正确记录。

这是我的设置:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="Log.txt"/>
  <appendToFile value="true" />
    <staticLogFileName value="true" />
  <rollingStyle value="Date" />
  <datePattern value=" yyyy-MM-dd" />
  <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
  <threshold value="DEBUG" />
  <layout type="log4net.Layout.PatternLayout">
   <conversionPattern value="%date [%thread] %-5level %logger  - %message%newline" />
  </layout>
 </appender>
4

2 回答 2

3

我发现了问题所在。我在配置中删除了这一行,它在滚动文件后开始正确附加:

<lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
于 2010-09-07T21:39:03.317 回答
1

可能设置maxSizeRollBackups为一个值(maxSizeRollBackups 设置为负 1 以允许无限数量的备份文件)

此示例显示如何配置 RollingFileAppender 以在每次程序执行时滚动一次日志文件。appendToFile 属性设置为 false 以防止 appender 覆盖现有文件。maxSizeRollBackups 设置为负 1 以允许无限数量的备份文件。文件大小确实必须受到限制,但这里设置为 50 GB,如果日志文件在单次运行期间超过此大小限制,那么它也会被滚动。

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logfile.txt" />
    <appendToFile value="false" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="-1" />
    <maximumFileSize value="50GB" />
    <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
</appender>

参考

于 2010-09-06T13:23:37.340 回答