我正在使用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日志记录配置?还有其他想法吗?