【问题标题】:Log4j not printing complete stack traceLog4j 不打印完整的堆栈跟踪
【发布时间】:2016-05-13 09:19:34
【问题描述】:

我检查了 SO 中的所有答案。但没有人真正帮助过我。

我的 Log4j 属性文件

log4j.rootLogger=debug,console,file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=eseries.log
log4j.appender.file.MaxFileSize=1KB
log4j.appender.file.layout=org.apache.log4j.EnhancedPatternLayout
log4j.appender.file.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n %throwable{short}

我的 log4j 版本

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.11</version>
  </dependency>

登录格式

    logger.error("*****Error Id is:"+errorId+"\t" , e);

我得到了什么

我刚刚在日志中收到e.getMessage()。不是完整的日志跟踪。

有什么建议吗?

【问题讨论】:

  • %throwable{short} 是问题所在,它正在抑制堆栈跟踪
  • 您也可以查看api 了解更多信息。

标签: java logging log4j log4j2


【解决方案1】:

这是因为您的转化模式

 log4j.appender.file.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n %throwable{short}

这里摘自ThrowableInformationPatternConverter

输出 LoggingEvent 的 ThrowableInformation 部分。经过 默认,输出完整的堆栈跟踪。

%throwable{none} 或 %throwable{0} 禁止堆栈跟踪。

%throwable{short} 或 %throwable{1} 仅输出第一行。

%throwable{n} 将为正整数输出 n 行或为负整数删除最后 -n 行。

您需要删除 %throwable{short} 才能查看完整的堆栈跟踪

【讨论】:

    猜你喜欢
    • 2011-01-18
    • 2015-07-01
    • 1970-01-01
    • 2010-09-25
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    相关资源
    最近更新 更多