简体   繁体   中英

java web: how to redirect stacktrace of uncaught exception to a log file?

I want to redirect only stacktrace of uncaught exception from console to log file. The rest of the things should appear on console as usual.

Set a Thread.UncaughtExceptionHandler that prints to the desired file. printStackTrace is threadsafe, so several threads may share the same PrintStream .

Created a sample program for this, Thanx to gustafc

public class UncaughtException {
    public static void main(String[] args) {        
        Thread.setDefaultUncaughtExceptionHandler( new Thread.UncaughtExceptionHandler(){
            public void uncaughtException(Thread t, Throwable e) {
                System.out.println("*****Yeah, Caught the Exception*****");
                e.printStackTrace(); // you can use e.printStackTrace ( printstream ps )
            }
        });     

        System.out.println( 2/0 );  // Throw the Exception 
    }
}

Output is

*****Yeah, Caught the Exception***** java.lang.ArithmeticException: / by zero at thread.UncaughtException.main(UncaughtException.java:12)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM