使用log4net

原文:《使用log4net,没有日志文件生成》 Posted on 2014/06/12

================================================================================

log4net主页:Apache log4net: Home

上周刚学习了下用法,参考Apache log4net Manual: Configuration一步步配置下来,运行正常。

然后我把配置写到app.config中,并把.exe和需要的.dll拷到其他目录中,一运行发现没有日志文件生成。今天重新看了一遍Apache log4net Manual: Configuration,突然发现工程编译后还产生了一个.exe.config的文件。里面就是原先app.config中的内容,连同该文件一同拷贝到另外目录就可以正常运行了。

配置如下:

AssemblyInfo.cs:

[assembly: log4net.Config.XmlConfigurator(Watch=true)]

App.config:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <configuration>
 3     <configSections>
 4         <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
 5     </configSections>
 6 
 7     <log4net>
 8         <appender name="Console" type="log4net.Appender.ConsoleAppender">
 9             <layout type="log4net.Layout.PatternLayout">
10                 <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" />
11             </layout>
12         </appender>
13         <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
14             <file value="example.log" />
15             <appendToFile value="true" />
16             <maximumFileSize value="100KB" />
17             <maxSizeRollBackups value="2" />
18             <layout type="log4net.Layout.PatternLayout">
19                 <conversionPattern value="%level %thread %logger - %message%newline" />
20             </layout>
21         </appender>
22         <root>
23             <level value="DEBUG" />
24             <appender-ref ref="Console" />
25             <appender-ref ref="RollingFile" />
26         </root>
27     </log4net>
28 </configuration>

Program.cs

 1 using log4net;
 2 using log4net.Config;
 3 
 4 namespace ConsoleApplication5
 5 {
 6     class MyApp
 7     {
 8         private static readonly ILog log = LogManager.GetLogger(typeof(MyApp));
 9 
10         static void Main(string[] args)
11         {
12             //BasicConfigurator.Configure();
13             //XmlConfigurator.Configure();
14 
15             log.Info("Entering application.");
16         }
17     }
18 }

===================================================================

Update: 2014-10-22

配置RollingFileAppender:根据设置的文件大小最大值Roll,限制所有日志文件总大小。

如下,追加到文件尾、所有日志文件总大小限制为1GB = (RollBackup文件数最大值15 + 在工作状态的日志文件)*64MB;

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <appendToFile value="true" />
    <maximumFileSize value="64MB" />
    <maxSizeRollBackups value="15" />
    <rollingStyle value="Size"/>
    ...
</appender>

RollingFileAppender.RollingStyle

【END】

posted @ 2014-09-12 08:02  SubmarineX  阅读(246)  评论(0编辑  收藏  举报