Che*_*ian 17 .net optimization logging log4net
这是我的log4net配置文件
<?xml version="1.0" encoding="utf-8" ?>
<log4net debug="true">
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %5rms [%-17.17t] %-22.22c{1} %-18.18M - %m%n" />
</layout>
</appender>
<appender name="SmtpAppender" type="MySmtpClientSmtpAppender">
<to value="a@a.com" />
<from value="admin@x.com" />
<subject value="Game Server Monitoring Failed!" />
<smtpHost value="smtp.x.com" />
<username value="admin" />
<password value="x" />
<bufferSize value="256" />
<lossy value="true" />
<evaluator type="log4net.spi.LevelEvaluator">
<threshold value="ERROR" />
</evaluator>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5p %d [ThreadId: %t] Class:%c{1} Method:%M %nMESSAGE:%n%m%n%n" />
</layout>
</appender>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="Logs\\wwwlog" />
<appendToFile value="true" />
<datePattern value="yyyyMMdd" />
<maximumFileSize value="10MB" />
<!--<rollingStyle value="Date" />-->
<filter type="log4net.Filter.LevelRangeFilter">
<acceptOnMatch value="true" />
<levelMin value="INFO" />
<levelMax value="FATAL" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="MySmtpAppender" />
<appender-ref ref="RollingLogFileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?任何提示/建议,以减少日志大小,同时保持清晰度,更好的转换模式?任何有趣的黑客?
编辑:XMl文件没有进入代码块.更新.任何建议?
nak*_*hli 29
没人提到编码.如果您使用中文,日语,阿拉伯语或任何双字节语言记录消息,这一点非常重要.这是一个例子:
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<encoding value="utf-8" />
<!-- etc. -->
</appender>
Run Code Online (Sandbox Code Playgroud)
Dsc*_*duc 11
RollingLogFileAppender的一个建议是使用最小的lockingModel.使用此设置,日志文件不会被锁定,而是打开然后为每次写入关闭.
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
Run Code Online (Sandbox Code Playgroud)
根据消息级别(调试,信息,错误或致命)在控制台上显示时使用不同颜色进行日志记录.第二个appender是将它保存在文件中:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net debug="false">
<appender name="trace" type="log4net.Appender.TraceAppender, log4net">
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="ColoredConsoleAppender" type="log4net.Appender.ColoredConsoleAppender,log4net">
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Red" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="White" />
</mapping>
<mapping>
<level value="INFO" />
<foreColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net" >
<param name="File" value="Logs/NSCurrent.log" />
<param name="AppendToFile" value="true" />
<param name="RollingStyle" value="Date" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<datePattern value="yyyy-MM-dd" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<root>
<priority value="DEBUG" />
<appender-ref ref="RollingFile" />
<appender-ref ref="ColoredConsoleAppender" />
</root>
</log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)
要减少日志文件大小,您可以尝试调整ConversionPattern:
这是我使用的格式:
<layout type="log4net.Layout.PatternLayout,log4net">
<!-- a reduced format, saves bit of log space: -->
<param name="ConversionPattern" value="%date{MM/dd HH:mm:ss,fff}-{%level}-%message%newline"/>
</layout>
Run Code Online (Sandbox Code Playgroud)
之前:
2012-06-05 10:58:40,819 [1] INFO我的应用[(null)] - 我的应用程序 - ===星婷....
后:
06/05 11:17:29,151- {INFO} - 我的应用 - ===开始......
注意:Apache的文档似乎对log4net不正确 - 因为它说使用SSS几毫秒,而log4net使用fff
每行少量节省可能会产生很大的差异:)
| 归档时间: |
|
| 查看次数: |
17439 次 |
| 最近记录: |