Log4j 2允许将类别和行信息包含到日志条目中。但是,作者声称创建该条目需要花费4至5倍的时间。
我日志的99.5%由正常操作条目(info)组成,而实际上并不需要行和类。我想知道是否有什么方法可以配置log4j 2,使其仅将文件,类和行包含在具有“警告”或更高级别的条目中?
从RC2开始,Log4j2不提供这种功能。您可以为此在log4j2 Jira问题跟踪器上提出功能请求。
同时,您是否要包含位置信息的控制权以每个记录器为基础。因此,一个想法可能是拥有一个配置了的单个系统级FATAL级记录器includeLocation="true"
。
配置片段示例:
...
<Loggers>
<AsyncLogger name="FATAL_LOGGER" level="fatal" includeLocation="true" additivity="false">
<AppenderRef ref="someAppender"/>
</AsyncLogger>
<Root level="trace" includeLocation="false">
<AppenderRef ref="someAppender"/>
</Root>
</Loggers>
</Configuration>
用法示例:
public class MyApp {
private static final Logger logger = LogManager.getLogger(MyApp.class);
public void someMethod(int value) {
// normal trace-level logging does not include location info
logger.trace("Doing some work with param {}", value);
try {
callAnotherMethod();
} catch (Throwable t) {
// use the shared fatal logger to include location info
LogManager.getLogger("FATAL_LOGGER").fatal("Unexpected error", t);
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句