假设你捕获了一个异常并在标准输出(比如说控制台)上进行e.printStackTrace()操作,你可能会得到以下输出:
java.io.FileNotFoundException: so.txt
at java.io.FileInputStream.<init>(FileInputStream.java)
at ExTest.readMyFile(ExTest.java:19)
at ExTest.main(ExTest.java:7)
现在我想将这个内容发送给一个像log4j这样的日志记录器,以获取以下结果:
31947 [AWT-EventQueue-0] ERROR Java.io.FileNotFoundException: so.txt
32204 [AWT-EventQueue-0] ERROR at java.io.FileInputStream.<init>(FileInputStream.java)
32235 [AWT-EventQueue-0] ERROR at ExTest.readMyFile(ExTest.java:19)
32370 [AWT-EventQueue-0] ERROR at ExTest.main(ExTest.java:7)
我该怎么做?
try {
...
} catch (Exception e) {
final String s;
... // <-- What goes here?
log.error( s );
}
log.error(e.getLocalizedMessage(),e)
,这完全是多余的。它能处理第一个参数为null吗? - Mark Peterslog4j-1.2.8.jar
,我想要在我的日志文件中打印所有的stackTrace
,所以我尝试了你上面提到的方法,但是它只打印了nullPointerException
。我在我的代码中使用了e.printStackTrace()
,它可以打印出所有的跟踪信息。为什么会这样呢? - Yubaraj