How to send a stacktrace to log4j?
java, log4j, logging, stack-trace
Solution
You pass the exception directly to the logger, e.g.
try {
...
} catch (Exception e) {
log.error( "failed!", e );
}
It's up to log4j to render the stack trace.
Problem
Say you catch an exception and get the following on the standard output (like, say, the console) if you do a 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) ``` Now I want to send this instead to a logger like, say, log4j to get the following: ``` 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) ``` How can I do this? ``` try { ... } catch (Exception e) { final String s; ... // <-- What goes here? log.error( s ); } ```