在我的应用程序中,我有一个单独的文件附加程序用于错误和(信息和调试)。在生产中,我只想记录错误并禁用信息和调试日志。考虑到性能,将保持附加程序的好方法,还是对性能不利
保留附加程序,但在“root”标签内将日志级别值更改为 WARN
<level value="WARN" /> <appender-ref ref="FILE.ERROR" /> <appender-ref ref="FILE.INFO" />
从“根”标签中注释掉信息附加器
<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 可能不会初始化信息附加程序,因为它的日志级别与根记录器级别不匹配,即。警告