swa*_*987 38 c# error-handling logging log4net
目前我的应用程序使用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>
Run Code Online (Sandbox Code Playgroud)
但是,问题在于每天都会记录日志 gateway.log
有没有人知道使用log4net每天拥有不同日志文件的方法?
理想情况下,我不希望web.config每天使用计划任务手动编辑.
Ser*_*kiy 79
你应该使用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>
Run Code Online (Sandbox Code Playgroud)
更新:我认为更好的方法是将日期包含在文件名中.并且仅使用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>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您的所有文件都将具有名称gateway_20120427.log.
jjc*_*hiw 14
<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>
Run Code Online (Sandbox Code Playgroud)
编辑
这是整个log4net配置部分每天滚动,就像@lazyberezovsky回答只是添加log4net和root来澄清一样
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>
Run Code Online (Sandbox Code Playgroud)
滚动日志后,此设置使文件扩展名保持不变。
<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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48758 次 |
| 最近记录: |