不同级别的log4net日志记录
问题描述:
我必须记录一些方法。在一种方法中,我必须记录一切。在所有其他方法,我只是记录异常...... 我已经这样做了配置:不同级别的log4net日志记录
<log4net>
<appender name="OneMethodFileAppender" type="log4net.Appender.RollingFileAppender">
...
<filter type="log4net.Filter.PropertyFilter">
<key value="realMethod" />
<stringToMatch value="xxx" />
<acceptOnMatch value="true" />
</filter>
</appender>
<appender name="WebsiteFileAppender" type="log4net.Appender.RollingFileAppender">
...
<filter type="log4net.Filter.PropertyFilter">
<key value="realMethod" />
<stringToMatch value="xxx" />
<acceptOnMatch value="false" />
</filter>
</appender>
<root>
<appender-ref ref="WebsiteFileAppender">
<threshold value="ERROR" />
</appender-ref>
<appender-ref ref="OneMethodFileAppender">
<threshold value="INFO" />
</appender-ref>
</root>
</log4net>
所以,当我匹配属性realMethod
我应该使用记录在INFO级别的附加器OneMethodFileAppender
;在所有其他情况下,我应该使用在ERROR级别登录的appender WebsiteFileAppender
。
我有不同的输出。 1.当我匹配方法xxx
一切正常。我的意思是在正确的日志中以INFO级别登录。 2.但是,当我不符合方法xxx
时,我在INFO级别登录这两个文件和两个文件。
有什么建议吗?
谢谢
答
我会建议使用logger元素来配置你的日志:
<log4net>
<appender name="OneMethodFileAppender" type="log4net.Appender.RollingFileAppender">
...
</appender>
<appender name="WebsiteFileAppender" type="log4net.Appender.RollingFileAppender">
...
</appender>
<root>
<appender-ref ref="WebsiteFileAppender">
<threshold value="ERROR" />
</appender-ref>
</root>
<logger name="LoggerName1">
<level value="INFO" />
<appender-ref ref="WebsiteFileAppender" />
</logger>
<logger name="LoggerName2">
<level value="INFO" />
<appender-ref ref="OneMethodFileAppender" />
</logger>
</log4net>
这两种方法应该,有自己的记录:
logger = LogManager.GetLogger("logger1");