如果我希望每x小时都有一个日志,我仍然不知道如何更改log4net。我有这个:
<log4net>
<root>
<level value="DEBUG"/>
<appender-ref ref="LogFileAppender"/>
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="C:\log.txt"/>
<param name="AppendToFile" value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="100MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n"/>
</layout>
</appender>
</log4net>
我有一个日志,我总是在这一个log.txt中添加日志 - 现在我想让我们每天都说一个新的日志文件(24小时)或者每12小时一个新的日志。在配置中我需要更改什么?对我的配置有什么建议吗?谢谢
答案 0 :(得分:7)
RE:http://logging.apache.org/log4net/release/config-examples.html
此示例显示如何配置RollingFileAppender以在日期期间滚动日志文件。此示例将每分钟滚动日志文件!要更改滚动周期,请调整DatePattern值。例如,日期模式“yyyyMMdd”将每天滚动。有关可用模式的列表,请参阅System.Globalization.DateTimeFormatInfo
。
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="logfile" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd-HHmm" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
在您的特定情况下,上面带有<datePattern value="yyyyMMdd-HH" />
的示例只允许您每小时记录一次。
但是,如果您想每X
小时记录一次,则可以创建一个派生自RollingFileAppender
的自定义附加程序,并覆盖AdjustFileBeforeAppend
方法,该方法会根据您的下一个计划检查当前时间记录间隔日期。例如,请参阅Have a Log4Net RollingFileAppender set to roll weekly。
答案 1 :(得分:1)
按如下方式替换您的滚动样式:
<rollingStyle value="Date" />
您可能还想删除文件大小限制。