为了账号安全,请及时绑定邮箱和手机立即绑定

Java 堆栈跟踪未使用 log4j2 打印

Java 堆栈跟踪未使用 log4j2 打印

沧海一幻觉 2024-01-28 16:00:15
我确信这是一个简单的修复,但我一生都无法弄清楚为什么。我收到随机 NPE 并让 log4j (2.0.2) 记录错误,但是尽管%ex我的 log4j 配置文件中有 ,但它不打印任何堆栈跟踪。11-01-2019 02:39:33.212 [Thread-307] 错误 AlarmParse.ProcessAlarm: java.lang.NullPointerException -Log4j2配置文件:<?xml version="1.0" encoding="UTF-8"?><configuration monitorInterval="30" status="INFO">  <appenders>    <Console name="Console" target="SYSTEM_OUT">      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg - %ex%n"/>    </Console>    <File name="MyFile" fileName="G:/iMCAlarmParse/logs/AppLog.log">        <PatternLayout pattern="%d{MM-dd-yyyy HH:mm:ss.SSS} [%t] %-5level %c{2}: %msg - %ex%n"/>    </File>爪哇:try {    //<Many sequential class calls>} catch (Exception e) {    log4j.error(e);}
查看完整描述

1 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

您实际上log4j.error(e)正在调用info(Object message)不需要额外注意的方法Exception

但是,要打印堆栈跟踪,您需要Throwable单独调用处理(异常的超类)的变体之一。最简单的方法之一可能是info(CharSequence arg0, Throwable arg1).

例如,您可以简单地将 catch 块中的行更改为:

log4j.error("", e);


查看完整回答
反对 回复 2024-01-28
  • 1 回答
  • 0 关注
  • 20 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信