使用log4net进行不同级别的日志记录
我必须记录一些方法。在一种方法中,我必须记录所有内容。在所有其他方法中,我只记录了异常。。。 我已完成此配置:使用log4net进行不同级别的日志记录,log4net,appender,log-level,Log4net,Appender,Log Level,我必须记录一些方法。在一种方法中,我必须记录所有内容。在所有其他方法中,我只记录了异常。。。 我已完成此配置: <log4net> <appender name="OneMethodFileAppender" type="log4net.Appender.RollingFileAppender"> ... <filter type="log4net.Filter.PropertyFilter"> <key value="
<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
时,我应该使用appenderOneMethodFileAppender
,该日志位于信息级别;在所有其他情况下,我应该使用appenderWebsiteFileAppender
记录错误级别
我有不同的输出。
1.当我匹配方法时,xxx
一切正常。我的意思是,在正确的日志中包含信息级别的日志。
2.但是当我与方法不匹配时,我会同时登录两个文件和两个信息级别的文件。我建议使用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");