【问题标题】:Tomcat Application Log not showing full stacktraceTomcat 应用程序日志未显示完整的堆栈跟踪
【发布时间】:2018-01-10 14:27:51
【问题描述】:

在 Tomcat 上运行了一个 Web 应用程序。我使用 slf4j/logback 记录异常及其堆栈跟踪。例如

2017-08-01 00:00:00.000 [http-nio-80-exec-5] ERROR g.s.GuiceyRequestFactoryServlet - 'Server Failure'
java.lang.reflect.InvocationTargetException: null
...
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.33]
    at java.lang.Thread.run(Unknown Source) [na:1.8.0_131]
Caused by: ...
    ... 59 common frames omitted
Caused by: ...
    ... 64 common frames omitted
java.lang.NullPointerException: null

因为导致 NPE 的真实位置嵌套在至少两个反射调用中的几个级别,不确定是否是这种情况,Tomcat/slf4j/logback 没有显示完整的堆栈跟踪并在 NPE 处停止,而不是进一步下来。

我期待类似的东西,例如

2017-08-01 00:00:00.000 [http-nio-80-exec-5] ERROR g.s.GuiceyRequestFactoryServlet - 'Server Failure'
java.lang.reflect.InvocationTargetException: null
...
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-util.jar:8.0.33]
    at java.lang.Thread.run(Unknown Source) [na:1.8.0_131]
Caused by: ...
    ... 59 common frames omitted
Caused by: ...
    ... 64 common frames omitted
Caused by: java.lang.NullPointerException: null
    at java.util.Calendar.setTime(Calendar.java:1770) ~[na:1.8.0_60]
    ... 80 common frames omitted

即在日志中显示更深的堆栈跟踪。有谁知道我应该在哪里看以及如何实现?例如Tomcat配置?回退配置? slf4j 方法?

编辑

对于那些认为这是其他一些问题的重复,这些问题询问那些“... xx common frames省略”,不,我不在乎这些行。我在问最后一个 NPE 根本没有打印。请先做好准备。

【问题讨论】:

  • @TechnoCrat 你问错了。我不在乎那些省略的行。我关心最后一个 NPE 根本没有打印。
  • 我收回了旗帜。什么是 NPE?
  • NullPointerException 的简写形式。因此,当您调用invoke 时,它​​会将真正的异常包装在InvocationTargetException 中。多次调用invoke,异常的真正原因变成了多层次下。所以第一个例子它停止打印 NPE 的堆栈跟踪,我猜是因为它太深了?我希望看到的是第二个示例,其中也打印了 NPE 的堆栈跟踪。

标签: java tomcat exception stack-trace


【解决方案1】:

... 59 more frames ommitted 仅表示这些异常之前已经打印过。在 Logback 中,您可以重组堆栈跟踪以避免重复并始终以正确的顺序打印堆栈行。

【讨论】:

  • 谢谢,但我正在讨论最后一个 NPE 堆栈跟踪。我不在乎上面的那些。
【解决方案2】:

这应该可以使用 -XX:-OmitStackTraceInFastThrow 选项来实现。

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多