首页 > 解决方案 > Log4j.properties 不会为 LOGGER.info()、LOGGER.error() 语句生成带有时间戳的日志

问题描述

我最近在我的项目中添加了 Log4j,并且所有日志都按预期打印。

现在我已经在 log4j.properties 文件中添加了时间戳,并且服务器生成的日志正在使用时间戳打印,但是我从 Logger.info() 和 Logger.error() 打印的哪些语句没有使用时间戳打印。这就是我的 log4j.properties 的样子:

logFileLoc = ${catalina.base}/logs/

log4j.rootLogger=INFO, stdout, fileAppender

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}: [%-5p] %c{1}:%L - %m%n

# Redirect Log Messages To A Debug Log File, Support File Rolling !!
log4j.appender.fileAppender=org.apache.log4j.RollingFileAppender
log4j.appender.fileAppender.File=${logFileLoc}/catalina.out
log4j.appender.fileAppender.MaxFileSize=50MB
log4j.appender.fileAppender.MaxBackupIndex=10
log4j.appender.fileAppender.Append=true
log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.fileAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}: [%-5p] %c{1}:%L - %m%n

每当我在我的代码中尝试这样的事情时:

LOGGER.debug("creating HomePage");

这是我在日志文件中看到的:

creating HomePage

谁能建议我如何在 LOGGER 语句中打印时间戳?这将是非常可观的。

标签: javaspringlogginglog4j

解决方案


我检查了您的配置,log4j 1.2.17一切正常。

我认为您在类路径中有其他 log4j 配置文件,或者您正在使用log4j.defaultInitOverride对 log4j 配置有影响的系统变量(如或其他一些)。log4j我建议在类的静态块中调试初始化LogManager,然后你会看到从哪个地方log4j加载配置。

如果我错了,请提供重现问题的代码。


推荐阅读