log4Net一些记忆性总结

http://logging.apache.org/log4net/

配置如下:

在 <configSections>节点配置如下:

   <configSections>
    <section name ="log4net" type="System.Configuration.IgnoreSectionHandler"/>
  </configSections>

另外,还要在顶级节点<configuration>下增加<log4net>子节点;在<log4net>节点下增加<appender>子节点,每个子节点代表一种记录日志的方式。

View Code
   
   
1 < log4net >
2 < appender name = " LogFileAppender " type = " log4net.Appender.FileAppender " >
3 < file value = " D:log4netfile.txt " />
4 < appendToFile value = " true " />
5 < rollingStyle value = " Date " />
6 < datePattern value = " yyyyMMdd-HH:mm:ss " />
7 < layout type = " log4net.Layout.PatternLayout " >
8 < footer value = " by Lee yi " />
9 < conversionPattern value = " 记录时间:%date 线程ID:[%thread] 日志级别:%-5level 出错类:%logger property:[%property{NDC}] - 错误描述:%message%newline耗费时间%run time当前日志名称%class " />
10 </ layout >
11 </ appender >
12 < appender name = " ConsoleAppender " type = " log4net.Appender.ConsoleAppender " >
13 < layout type = " log4net.Layout.PatternLayout " >
14 < conversionPattern value = " %date [%thread] %-5level %logger [%property{NDC}] - %message%newline " />
15 </ layout >
16 </ appender >
17 < appender name = " EventLogAppender " type = " log4net.Appender.EventLogAppender " >
18 < layout type = " log4net.Layout.PatternLayout " >
19 < conversionPattern value = " %date[%thread]%-5level%logger[%property{NDC}]-%message%newline " />
20 </ layout >
21 </ appender >
22 < appender name = " AdoNetAppender_Access " type = " log4net.Appender.AdoNetAppender " >
23 < connectionString value = " Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:log4net.mdb " />
24 < commandText value = " Insert into LogDetails([LogDate],[Thread],[Level],[Logger],[Message]) values(@logDate,@thread,@logLevel,@logger,@message) " />
25 < parameter >
26 < parameterName value = " @logDate " />
27 < dbType value = " String " />
28 < size value = " 240 " />
29 < layout type = " log4net.Layout.PatternLayout " >
30 < conversionPattern value = " %date " />
31 </ layout >
32 </ parameter >
33 < parameter >
34 < parameterName value = " @thread " />
35 < dbType value = " String " />
36 < size value = " 240 " />
37 < layout type = " log4net.Layout.PatternLayout " >
38 < conversionPattern value = " %thread " />
39 </ layout >
40 </ parameter >
41 < parameter >
42 < parameterName value = " @logLevel " />
43 < dbType value = " String " />
44 < size value = " 240 " />
45 < layout type = " log4net.Layout.PatternLayout " >
46 < conversionPattern value = " %level " />
47 </ layout >
48 </ parameter >
49 < parameter >
50 < parameterName value = " @logger " />
51 < dbType value = " String " />
52 < size value = " 240 " />
53 < layout type = " log4net.Layout.PatternLayout " >
54 < conversionPattern value = " %logger " />
55 </ layout >
56 </ parameter >
57 < parameter >
58 < parameterName value = " @message " />
59 < dbType value = " String " />
60 < size value = " 240 " />
61 < layout type = " log4net.Layout.PatternLayout " >
62 < conversionPattern value = " %message " />
63 </ layout >
64 </ parameter >
65 </ appender >
66 < root >
67 < level value = " WARN " />
68 < appender - ref ref = " LogFileAppender " />
69 < appender - ref ref = " ConsoleAppender " />
70 < appender - ref ref = " EventLogAppender " />
71 </ root >
72 < logger name = " testApp.Logging " >
73 < level value = " DEBUG " />
74 </ logger >
75 </ log4net >

Appender节点的name属性值有如下一下,仅列出经常用的属性值:

AdoNetAppender:利用ADO.NET记录到数据库的日志;

ConsoleAppender:将日志输出到控制台;

EventLogAppender:将日志写到Windows Event Log;

使用log4net中可能会使用到一些参数:

%m(message):输出的日志消息;

%n(new line):换行;

%d(datetime):输出到当前语句运行的时刻;

%r(run time):输出程序从运行到执行到当前语句时消耗的毫秒数;

%t(thread id):当前语句所在线程id

%p(priority):日志的当前优先级,即DEBUG,INFO,WARN..等等;

%c(class):当前日志对象的名称;

%of(file):输出语句所在文件名;

%l(line):输出语句所在的行号.

%数字:表示该项的最小长度,如果不够,则用空格填充,如"%-5level"表示level的最小宽度是5个字符,如果实际长度不够5个字符则以空格填充。

把数据存储到Access数据库中,代码如下:

View Code
   
   
1 static void Main( string [] args)
2 {
3 ILog log = log4net.LogManager.GetLogger( " AdoNetAppender_Access " );
4 log.Error( " error " , new Exception( " 发生了一个异常 " ));
5 log.Fatal( " fatal " , new Exception( " 发生了一个致命错误 " ));
6 log.Info( " info " );
7 log.Debug( " debug " );
8 log.Warn( " warn " );
9 Console.WriteLine( " 日志记录完毕。 " );
10 }

root修改如下:

    <root>
      <level value="WARN"/>
      <appender-ref ref="AdoNetAppender_Access"/>//日志保存在Access数据库中
      <!--<appender-ref ref="LogFileAppender"/>//保存在文件中
      <appender-ref ref="ConsoleAppender"/> //输出到控制台中
      <appender-ref ref="EventLogAppender"/>-->
    </root>

你可能感兴趣的:(log)