日期:2014-05-20  浏览次数:20726 次

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

------解决方案--------------------

给大家介绍个技术群

大家一起学习,一起提高

21189212