Log4J exception FAQ: "How do I print the stack trace of an exception using Log4J or Commons Logging?"
Printing the stack trace of a Log4J exception seems to be something of a trick question. In reviewing Java code from different developers at different organizations I see a lot of people working very hard to print a stack trace using Log4J, including a lot of variations of calling e.printStackTrace()
method. In this short tutorial I’ll show how to solve this problem.
Log4J exception stack trace - short answer
The short answer is that all you have to do to print the stack trace of an exception using Java and Log4J (or the Apache Commons Logging project) is this:
log.error("Your description here", exception);
where exception
is your Java Exception object. The Log4j error method that takes a description followed by a Throwable will print the stack trace of the Java Throwable object.
For more information on how this works with Log4J I recommend looking at the API documentation for the Logger class.
A more complete Log4J exception stack trace example
In case that isn’t clear, the following source code might help to make what I’m saying more clear:
try { // do something here that might throw an exception } catch (BadException e) { log.error("Threw a BadException in MyClass::MyMethod, full stack trace follows:", e); }
In these Log4j exception printing examples, the variable named log
refers to my Log4J logger reference, which I create somewhere earlier in the code.
Of course if you're using the Log4j warn
or debug
methods you'll just call those methods instead of the error
method. Here's a Log4j debug
method example:
log.debug("Your description here", exception);
and here's the Log4j warn
method syntax:
log.warn("Your description here", exception);
Log4J stack trace printing - What's Related
As I wrap up my current collection of Log4J examples, here's a link to my other Log4J tutorials: