Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java堆栈跟踪未使用log4j2打印_Java_Log4j2 - Fatal编程技术网

Java堆栈跟踪未使用log4j2打印

Java堆栈跟踪未使用log4j2打印,java,log4j2,Java,Log4j2,我相信这是一个简单的解决办法,但我一辈子都不知道为什么。我得到随机NPE,并让log4j(2.0.2)记录错误,但是尽管在我的log4j配置文件中有%ex,但它不会打印堆栈跟踪 11-01-2019 02:39:33.212[Thread-307]错误AlarmParse.ProcessAlarm:java.lang.NullPointerException- Log4j2配置文件: <?xml version="1.0" encoding="UTF-8"?> <configu

我相信这是一个简单的解决办法,但我一辈子都不知道为什么。我得到随机NPE,并让log4j(2.0.2)记录错误,但是尽管在我的log4j配置文件中有
%ex
,但它不会打印堆栈跟踪

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>

爪哇:

试试看{
//
}捕获(例外e){
log4j.错误(e);
}
通过
log4j.error(e)
您实际调用的是
info(Object message)
方法,该方法不会额外处理
异常

但是,要打印堆栈跟踪,您需要调用其中一个变量,分别处理
Throwable
(异常的超类)。最简单的方法之一是
info(CharSequence arg0,Throwable arg1)

例如,您只需将catch块中的行更改为:

log4j.error("", e);

令人惊叹的。我已经重新编译并将JAR部署到服务器上。现在我们等待……)太好了,谢谢。堆栈跟踪似乎有点短,但它标识了失败的类。请尝试
%ex{full}
获取堆栈跟踪。
log4j.error("", e);