如何在日志文件中打印堆栈跟踪

15

我在我的Java Swing应用中记录错误:

logger.error("ERROR: " + ex);

其中ex是异常对象,这只会输出:

13:33:58,964 ERROR PlayOffPanel:292 - ERROR: java.lang.NullPointerException

但我想知道完整的堆栈跟踪信息。

我的log4j配置文件如下:

log4j.rootLogger=DEBUG,file

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.maxFileSize=100KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.File=error.log
log4j.appender.file.threshold=DEBUG
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

您可以查看下面的线程。它有完整的答案。 https://dev59.com/g2855IYBdhLWcg3wbztl#51655824 - Md. Sajedul Karim
2个回答

46

你需要编写代码

logger.error("Error description",ex);

查看javadoc,如果要获取堆栈跟踪,异常必须是第二个参数。


如果不是异常,而是使用logger.error输出自定义错误消息,并且仍然想要打印堆栈跟踪,该怎么办? - Mark

9
通常情况下,您也可以将 Throwable 实例传递给记录器,例如:
logger.error( "My custom message", exception )

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接