java - 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 语句中打印时间戳?这将是非常可观的。
解决方案
我检查了您的配置,log4j 1.2.17
一切正常。
我认为您在类路径中有其他 log4j 配置文件,或者您正在使用log4j.defaultInitOverride
对 log4j 配置有影响的系统变量(如或其他一些)。log4j
我建议在类的静态块中调试初始化LogManager
,然后你会看到从哪个地方log4j
加载配置。
如果我错了,请提供重现问题的代码。
推荐阅读
- python - 如何将文件输出格式化为特定数量的数据列?
- excel - VBA:SelectAll之后的选择焦点
- php - Laravel 6 - 将参数传递给 $app->when()->needs()->give()
- python - SQLAlchemy+PostgreSQL 更新不起作用
- google-sheets - 谷歌表格的问题:一个单元格计算错误的时间平均值
- python - 无法让并行处理在 python 中工作
- python-3.x - 把括号放在数字之间
- reactjs - 发送 post 请求时 useEffect 导致 .map() 错误
- python - Python中的lambda函数问题
- python-3.x - 如何将数据框中的列绘制为子图