我怀疑由我的Web应用程序使用的第三方jar创建的线程可能会抛出异常,而不是捕获它。但是,我在日志文件中没有看到任何此类证据。如何强制将所有未捕获的异常转储到日志文件中?这适用于在Glassfish中运行的Web应用程序。
答案 0 :(得分:1)
您可以更改未捕获的异常处理程序。
http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.UncaughtExceptionHandler.html
答案 1 :(得分:0)
您可以使用Thread's
setDefaultUncaughtExceptionHandler
静态方法设置默认的未捕获异常处理程序:
Thread.setDefaultUncaughtExceptionHandler( new Thread.UncaughtExceptionHandler() {
public void uncaughtException( final Thread t, final Throwable e ) {
...
答案 2 :(得分:0)
事实证明,这对Glassfish来说并不是必需的,因为Glassfish已经做到了 - 但我在日志中查找错误的位置。
异常打印到主server.log
文件 - 而不是我应用程序自己的log4j日志文件。