log4net的初使用

最近在写一些C#的程序,想找一个记录日志的软件,当然会想起在java中大名鼎鼎的log4j,查了一下还真的发现有.net版的,就上网找了一些资料学了一下,把它用起来再说,用法很简单,只要把Log4Net.dll加入工程中,然后在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       < log4net >
 7           <!-- 定义输出到文件中 -->
 8           < appender  name ="LogFileAppender"  type ="log4net.Appender.FileAppender" >
 9               <!-- 定义文件存放位置 -->
10               < file  value ="log.log"   />
11               < layout  type ="log4net.Layout.PatternLayout" >
12                   <!-- 每条日志末尾的文字说明 -->
13                   < footer  value ="[Footer]--Test By Ring1981  "   />
14                   <!-- 输出格式
15                      每种转换符号都以%开始,后面跟着一个格式符号和换符号。
16                      %-数字 :该项的最小长度,小于最小长度的用空格填充
17                      %m(message):输出的日志消息
18                      %n(new line):换行 
19                      %d(datetime):输出当前语句运行的时刻 
20                      %r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数 
21                      %t(thread id):当前语句所在的线程ID 
22                      %p(priority): 日志的当前优先级别,即DEBUG、INFO、WARN…等 
23                      %c(class):当前日志对象的名称,
24                      %L(line ):输出语句所在的行号 
25                      %F(file name):输出语句所在的文件名
26                      %logger 日志名称
27                   -->
28                   < conversionPattern  value ="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline"   />
29               </ layout >
30           </ appender >
31           <!-- 定义输出到控制台命令行中 -->
32           < appender  name ="ConsoleAppender"  type ="log4net.Appender.ConsoleAppender" >
33               < layout  type ="log4net.Layout.PatternLayout" >
34                   <!-- conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" / -->
35                   < conversionPattern  value ="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline"   />
36               </ layout >
37           </ appender >
38           <!-- 定义输出到windows事件中 -->
39           < appender  name ="EventLogAppender"  type ="log4net.Appender.EventLogAppender" >
40               < layout  type ="log4net.Layout.PatternLayout" >
41                   < conversionPattern  value ="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"   />
42               </ layout >
43           </ appender >
44           <!-- RollingFileAppender是输出源也是输出到文件中,只是以自增长的方式 -->
45           < appender  name ="RollingLogFileAppender"  type ="log4net.Appender.RollingFileAppender" >
46               < param  name ="File"  value ="log/system_log_" />
47               <!-- 是否覆盖 -->
48               < param  name ="AppendToFile"  value ="true" />
49               <!-- 设置无限备份=-1 ,最大备份数为1000 -->
50               < param  name ="MaxSizeRollBackups"  value ="100" />
51               <!-- 每个文件的最大20k -->
52               < param  name ="MaximumFileSize"  value ="1KB" />
53               <!-- 名称是否可以更改 为false为可以更改 -->
54               < param  name ="StaticLogFileName"  value ="false" />
55               <!-- 文件名称 -->
56               < param  name ="DatePattern"  value ="yyyyMMdd&quot;.log&quot;" />
57               < param  name ="RollingStyle"  value ="Date" />
58               < layout  type ="log4net.Layout.PatternLayout" >
59                   <!-- conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %SysMessage%newline" / -->
60                   < conversionPattern  value ="时间:%date [线程:%thread] %-5level  [类:%c][%L行]%n    %-5level:%message%newline"   />
61               </ layout >
62           </ appender >
63           <!-- 定义日志的输出媒介,下面定义日志以四种方式输出。也可以下面的按照一种类型或其他类型输出。 -->
64           < root >
65               < appender-ref  ref ="LogFileAppender"   />
66               < appender-ref  ref ="ConsoleAppender"   />
67               < appender-ref  ref ="EventLogAppender"   />
68               < appender-ref  ref ="RollingLogFileAppender"   />
69           </ root >
70       </ log4net >
71  </ configuration >
72 

 

然后在AssemblyInfo.cs文件最后加入[assembly: log4net.Config.DOMConfigurator()]即可用了

示例:

 1  class  Program
 2  {
 3           private   static  ILog log  =  LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
 4 
 5           static   void  Main( string [] args)
 6          {
 7              log.Debug( " 测试日志 " );
 8              log.Info( " 测试日志 " );
 9              log.Warn( " 测试日志 " );
10              Console.Read();
11          }
12  }

运行效果:

你可能感兴趣的:(log)