Search code examples
javaloggingstack-tracejava.util.logging

How do I log a stacktrace using java's Logger class


I am using Java's Logger class. I want to pass ex.printStackTrace() into Logger.log(loglevel, String), but printStackTrace() returns void. So I am not able to pass and print the stack trace of the exception.

Is there any way that I can convert void into String, or are there any other methods to print the whole stack trace of exceptions?


Solution

  • You need to understand that void is actually nothingness. You cannot convert what is nothing. You might end up printing void as a string, but (trust me), you don't want that.

    I think what you are looking for is

    // assuming ex is your Exception object
    logger.error(ex.getMessage(), ex);
    // OR
    Logger.log(errorLogLevel, ex.getMessage(), ex)
    

    This will print the error message using the logger that you have configured. For more details, you can take a look at the java docs for Exception#getMessage()