我的问题是基于这个问题: Log runtime Exceptions in Java using log4j在那里解释了如何编写自定义UncaughtExceptionHandler来获取log4j记录的RuntimeExceptions。
我按照建议编写了自己的UncaughtExceptionHandler。但是,我的Web应用程序(tomcat 5.5)不使用它。
我尝试将以下行添加到各个地方,但没有达到预期的效果:
Thread.setDefaultUncaughtExceptionHandler(new Log4JUncaughtExceptionHandler());
这是我的UncaughtExceptionHandler:
import org.apache.log4j.Logger;
public class Log4JUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
private static Logger log = Logger.getLogger(Log4JUncaughtExceptionHandler.class);
public void uncaughtException(Thread t, Throwable ex) {
log.error("Uncaught exception in thread: " + t.getName(), ex);
}
}
如何让它发挥作用?