log4j2使用通过异步logger来提高吞吐量,如果通过
-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector 或者
log4j2.component.properties文件中添加
Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector激活异步logger,
那么就默认开启了异步logger,默认是不支持位置参数的,因为获取位置参数非常耗费性能,特别是异步执行需要将一个线程的堆栈信息传递给另一个线程。
如果你需要在异步logger环境下记录位置参数,可以对logger添加includeLocation 属性,比如
<Root level="INFO" includeLocation="true">
如果是测试环境,那么直接禁用掉Log4jContextSelector参数对异步上下文的选择就好了
Posted in: WEB开发
Comments are closed.