假设你捕获了一个异常并在标准输出(比如控制台)上得到以下信息,如果你执行 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 );
}
最佳答案
您将异常直接传递给记录器,例如
try {
...
} catch (Exception e) {
log.error( "failed!", e );
}
由 log4j 来呈现堆栈跟踪。
关于java - 如何将堆栈跟踪发送到 log4j?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4347797/