不同级别的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");