我有一个 Log4Net RollingFileAppender 配置为:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<root>
<level value="ALL" />
</root>
<logger name="RollingFileAppender" additivity="false">
<level value="DEBUG"/>
<appender-ref ref="RollingFileAppender" />
</logger>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\\MyLog.log" />
<param name="AppendToFile" value="true" />
<param name="DatePattern" value="yyyy-MM-dd"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%m%n"/>
</layout>
</appender>
</log4net>
</configuration>
查看文档,默认滚动样式是 Composite,所以当它达到一定大小(默认为 10MB)时,它会滚动,而不仅仅是日期。
问题是当它达到大小时,它正在重新启动日志并且我正在丢失前半天的数据(它在中午左右达到这个大小)。
为什么这不只是滚动到一个新文件并将所有未来的日志行放入 MyLog.log 中?还是日志正在滚动,但在午夜,它再次滚动并覆盖过时的日志(例如,一旦达到 10MB,滚动到 MyLog.log2009-04-08,然后在午夜覆盖同一个文件)?
我将设置
<rollingStyle value="Date" />
这是我必须做的所有事情来确保它只在日期边界上滚动吗?我可以在 Log4Net.config 中即时更改它,还是必须重新启动应用程序?它在 IIS6 上运行。