请问能否把程序运行时出现的异常堆栈信息也保存进log4j指定的日志文件中

时间:2022-02-03 15:15:13
请教能否把程序运行时出现的错误堆栈信息也保存进log4j指定的日志文件中?
比如在程序运行时出现运行期错误,在控制台窗口中会打印出如下的错误堆栈信息: 
Exception   in   thread   "main "    java.lang.ArithmeticException :   /   by   zero 
at   DES.main(DES.java:43) 

我在log4j的配置文件中指定日志输出级别为debug,在程序运行时出现的运行期错误日志只能显示在控制台窗口中,有什么办法能同时把它们输出到log4j指定的日志文件中?(现在的日志文件只能得到诸如log.debug()、log.error()等输出的日志,而得不到运行期错误堆栈日志) 

我知道通过诸如: 
try{ 
... 
}   catch   (Exception   e)   { 
log.debug(e); 

的方式也行,但这样太麻烦了,不可能在所有代码中都要写这样的语句,有没有简单的方法。 


------解决方案--------------------
try{ //重定向輸出流 
PrintStream ps = new PrintStream(logPath); 
//System.setOut(ps); 
System.setErr(ps); 
}catch (FileNotFoundException e) { 
e.printStackTrace();