1 [assembly: log4net.Config.XmlConfigurator(Watch = true)]//注入
2 在一个Web应用项目中,我使用了Fluent NHibernate作为数据访问组件,Log4net来做日志记录。实际编码中,主要使用了INFO和ERROR这两个等级来记录日志,如果按照以下Log4net配置:
3 "ALL"/>ref ref="RollingFile"/>ref ref="RollingFileTracer"/>
4
5 log4net会把INFO和ERROR的日志记录到同一个日志文件里,Fluent NHibernate的INFO日志会大量存在于该日志文件中,这样一来对日后分析错误日志带来非常之不便,所以就想能不能单独把ERROR级的错误日志记录到一个特定的日志文件里。
6 于是开始尝试各种配置来实现这个需要,标签不支持多个,也就没法通过在中配置多个不同级别的日志输入,通过查阅Log4net文档,找到了这个标记,配置如下:
7
8 "log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
9
10 我们可以看到“RollingFileTracer”中我们通过Filter过滤,只记录范围为ERROR到FATAL,然后在增加该appender,level设置为“ALL”记录所有级别的日志。好了,配置完成,程序实现了记录不同等级的错误信息到多个日志文件。
11
12 ----------------------------------事例--------------
13 [assembly: log4net.Config.XmlConfigurator(Watch = true)]//注入
14 "log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/>
15
16
17
18
19 "RollingFile" type="log4net.Appender.RollingFileAppender">
20 "Log/Info/" />
21 "true" />
22
23 "5MB" />
24
25 "-1" />
26 "yyyyMMdd".htm"" />
27
28 "Composite" />
29 "false" />
30 "log4net.Layout.PatternLayout">
31 "
%n时间:%d [%t]
%n级别:%-5p
%n类:%c [%x]
%n%m
%n
" />
32
33 "log4net.Filter.LevelRangeFilter">
34 "INFO" />
35 "INFO" />
36
37
38
39
40 "RollingWarnFile" type="log4net.Appender.RollingFileAppender">
41 "Log/Warn/" />
42 "true" />
43
44 "5MB" />
45
46 "-1" />
47 "yyyyMMdd".htm"" />
48
49 "Composite" />
50 "false" />
51 "log4net.Layout.PatternLayout">
52 "
%n时间:%d [%t]
%n级别:%-5p
%n类:%c [%x]
%n%m
%n
" />
53
54 "log4net.Filter.LevelRangeFilter">
55 "WARN" />
56 "WARN" />
57
58
59
60
61 "RollingFileTracer" type="log4net.Appender.RollingFileAppender">
62 "Log/Error/" />
63 "true" />
64 "10MB" />
65 "-1" />
66 "yyyyMMdd".htm"" />
67 "Composite" />
68 "false" />
69 "log4net.Layout.PatternLayout">
70 "
%n时间:%d [%t]
%n级别:%-5p
%n类:%c [%x]
%n%m
%n
" />
71
72 "log4net.Filter.LevelRangeFilter">
73 "ERROR" />
74 "FATAL" />
75
76
77
78 "ALL" />
79 ref ref="RollingFile" />
80 ref ref="RollingWarnFile" />
81 ref ref="RollingFileTracer" />
82
83
84
85 -----------------------------------------------
86 "logerror">"ALL"/>ref ref="ErrorAppender"/>"loginfo">"ALL"/>ref ref="InfoAppender"/>"ErrorAppender" type="log4net.Appender.RollingFileAppender">"File" value="Log\\LogError\\"/>"AppendToFile" value="true"/>"MaxSizeRollBackups" value="100"/>"MaxFileSize" value="10240"/>"StaticLogFileName" value="false"/>"DatePattern" value="yyyyMMdd".htm""/>"RollingStyle" value="Date"/>"log4net.Layout.PatternLayout">"ConversionPattern" value="
%n异常时间:%d [%t]
%n异常级别:%-5p
%n异 常 类:%c [%x]
%n%m
%n
"/>"InfoAppender" type="log4net.Appender.RollingFileAppender">"File" value="Log\\LogInfo\\"/>"AppendToFile" value="true"/>"MaxFileSize" value="10240"/>"MaxSizeRollBackups" value="100"/>"StaticLogFileName" value="false"/>"DatePattern" value="yyyyMMdd".htm""/>"RollingStyle" value="Date"/>"log4net.Layout.PatternLayout">"ConversionPattern" value="
%n日志时间:%d [%t]
%n日志级别:%-5p
%n日 志 类:%c [%x]
%n%m
%n
"/>
87
88 "ALL"/>
89 ref ref="RollingFile"/>
90 ref ref="RollingFileTracer"/>
91