gpt4 book ai didi

java - 为什么 log4j 2 不记录应用程序和单元测试的方法名称

转载 作者:行者123 更新时间:2023-11-30 10:46:29 24 4
gpt4 key购买 nike

我的 Log4j2 配置文件如下所示:

<Appenders>
<RollingRandomAccessFile name="APP_LOG_APPENDER" fileName="${sys:baseLogPath}/${appLogFileName}.log"
filePattern="${sys:baseLogPath}/backups/$${date:yyyy-MM}/${appLogFileName}-%d{yyyy-MM-dd}-%i.log.gz" immediateFlush="false">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [Thread: %t] %level [%c][%M] - %msg%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB" />
</Policies>
<DefaultRolloverStrategy max="20"/>
</RollingRandomAccessFile>
</Appenders>
<Loggers>
<Root level="debug" additivity="false">
<AppenderRef ref="APP_LOG_APPENDER" />
</Root>
</Loggers>

MyClass 中的记录器语句

public class MyClass {
private final static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(MyClass.class);
public void someMethod() {
logger.debug("Some sample string at DEBUG level....");
logger.info("Some sample string at INFO level....");
logger.warn("Some sample string at WARN level....");
logger.error("Some sample string at ERROR level....");
}
}

日志消息如下:

2016-04-11 12:32:31.245 [Thread: main] DEBUG [com.demo.MyClass][] - Some sample string at DEBUG level....
2016-04-11 12:32:31.245 [Thread: main] INFO [com.demo.MyClass][] - Some sample string at INFO level....
2016-04-11 12:32:31.245 [Thread: main] WARN [com.demo.MyClass][] - Some sample string at WARN level....
2016-04-11 12:32:31.245 [Thread: main] ERROR [com.demo.MyClass][] - Some sample string at ERROR level....

我使用的是 log4j2-2.5 版本和相应的 SLF4J API。

谁能帮我理解为什么会这样?

最佳答案

您是否开启了 Async Logger? (例如,通过系统属性 -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector)

如果是这样,这是不包括位置信息的情况之一。 (引用:https://logging.apache.org/log4j/2.x/manual/layouts.html#LocationInformation)。您可以通过

明确打开位置信息
<Root level="debug" includeLocation="true"> 
....

但是,我强烈建议不要在日志消息中包含方法名称,因为从堆栈跟踪中获取此类信息既昂贵又缓慢

关于java - 为什么 log4j 2 不记录应用程序和单元测试的方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36542487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com