请教能否把程序运行时出现的错误堆栈信息也保存进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();
}