目前我的应用程序使用log4net记录错误,其web.config如下所示:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:/paypal/logs/gateway.log" />
<appendToFile value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>但是,这样做的问题是,每天的日志都会写入gateway.log
有没有人知道使用log4net每天有不同的日志文件的方法?
理想情况下,我不想每晚都使用计划任务手动编辑web.config。
发布于 2012-04-27 19:15:05
您应该将RollingFileAppender与rollingStyle Date和datePattern yyyyMMdd一起使用(这将每天滚动)。
配置示例:
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:/paypal/logs/gateway.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>更新:我认为更好的方法是在文件名中包含日期。并且仅使用datePattern值来显示何时应该创建新的日志文件。
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="c:/paypal/logs/gateway_%date{yyyyMMdd}.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
</appender>在这种情况下,所有文件的名称都类似于gateway_20120427.log。
发布于 2012-04-27 19:11:55
就像使用RollingFileAppender
<appender name="RollingLogFileAppenderOutput" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="c:\my.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.log'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>编辑
这是每天滚动的整个log4net配置部分,就像@lazyberezovsky回答的那样,只是添加了log4net和根来澄清
edit2 <file value="c:/paypal/logs/gateway_" />这将创建一个名为' gateway_‘的文件,最后(2012-04-27)它将重命名为gateway_20120427.log,第二天(2012-04-28)它将再次创建文件gateway_,最后将创建gateway_20120428.log。
<log4net>
<appender name="RollingLogFileAppenderOutput" type="log4net.Appender.RollingFileAppender">
<file value="c:/paypal/logs/gateway_" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="yyyyMMdd'.log'" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingLogFileAppenderOutput" />
</root>
</log4net>发布于 2016-04-23 01:43:05
PreserveLogFileName
此设置使文件的扩展名在您滚动日志后保持不变。
<log4net>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:/paypal/logs/gateway.log" />
<appendToFile value="true" />
<rollingStyle value="Date" />
<datePattern value="_yyyyMMdd" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" />
</layout>
<preserveLogFileNameExtension value="true" />
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="FileAppender" />
</root>
</log4net>https://stackoverflow.com/questions/10349536
复制相似问题