Java Logger有时不会打印完整的堆栈跟踪

时间:2016-07-01 03:47:35

标签: java logging

我正在使用java.util.logging.Logger来记录捕获的异常。

以下是代码段:

for ( int x = 0; x < 25; x++ ) {

    try {

         throw new Exception("hi mom!");

    } catch (final Exception e) {

        LOGGER.log(Level.SEVERE, ": RUNTIME EXCEPTION raised.", e);

    }
}

我观察到有时候,当异常提升7次或更多时,只有最初的几个会显示Stacktrace。

即:

java.lang.ArrayIndexOutOfBoundsException

instead of

java.lang.ArrayIndexOutOfBoundsException: -2
at java.util.ArrayList.get(ArrayList.java:324)
at .........

此外,我现在能够不断地重现它,以至于我从未在部署的系统上获得堆栈跟踪,但是当我将调试器连接到系统时,日志总是吐出堆栈(即使没有断点)。

我会认为这是一些配置问题,如果在调试模式下,则打印堆栈跟踪,否则不会。但是,如上所述,在某些情况下,有时会打印堆栈跟踪而不会打印其他堆栈跟踪,所有这些都是在同一版本中打印的。

有没有我可以看一下的java日志记录配置?还有其他想法吗?

0 个答案:

没有答案