0

在我的应用程序中,我有一个单独的文件附加程序用于错误和(信息和调试)。在生产中,我只想记录错误并禁用信息和调试日志。考虑到性能,将保持附加程序的好​​方法,还是对性能不利

  1. 保留附加程序,但在“root”标签内将日志级别值更改为 WARN

    <level value="WARN" />
    <appender-ref ref="FILE.ERROR" />
    <appender-ref ref="FILE.INFO" />
    
  2. 从“根”标签中注释掉信息附加器

    <level value="WARN" />
    <appender-ref ref="FILE.ERROR" />
    <!--<appender-ref ref="FILE.INFO" />-->
    

我的逻辑说#2更好,因为如果我们保持启用它(如#1)Log4net将初始化appender,然后对于每个日志语句,它将比较日志语句中的日志级别与appender允许的日志级别和然后决定是否记录它。通过使用#2,我们可以避免这个循环和额外的执行,因为信息附加器根本不会被初始化。

我的信息附加程序的日志级别设置为

<filter type="log4net.Filter.LevelRangeFilter">
        <levelMin value="DEBUG" />
        <levelMax value="INFO" />
</filter>

我的问题是我从性能角度的理解是否有效?或者,对于 log4net 来说并不重要,或者 log4net 可能不会初始化信息附加程序,因为它的日志级别与根记录器级别不匹配,即。警告

4

0 回答 0