views:

402

answers:

2

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.

+6  A: 

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

gustafc
Gustafc, i never heard this thing, But yes it works like charm :)
Rakesh Juyal
+2  A: 

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)

Rakesh Juyal