首页 > 解决方案 > Logger 只打印日志消息而不是异常

问题描述

try {
   // some code
}
catch (Exception e) {
   Logger.log(Level.WARN, "Unable to complete the job. ID: " + id, e);
}

因此,显然开发人员希望如果出现问题,它会记录异常(异常类型和堆栈跟踪)

这是我得到的日志打印

[27 May 2019 13:30:07][http-nio-8080-exec-13][WARN]: Unable to complete the job. ID: 123457890

这是 Log4j 配置

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=debug.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=[%d{dd MMM yyyy HH:mm:ss}][%t][%p]: %m%n

我知道获取异常详细信息的方法,我想了解这种行为。这是怎么发生的?记录器是否忽略传递的参数?

标签: javaexceptionlogginglog4j

解决方案


ERROR 级别用于在日志文件中记录错误的堆栈跟踪。

尝试使用。

    try {
        // some code
    } catch (Exception e) {
       Logger.log(Level.ERROR, "Unable to complete the job. ID: " + id, e);
    }

如果它仍然不起作用,请分享您的日志库。会检查的。


推荐阅读