Search code examples
javalog4jsyslog

How to make log4j syslog appender write a stack trace in one line?


I am using log4j syslog appender and notice that when an exception occurs the appender writes every entry in the stack trace as a new line.

Is there a way to configure it so that the entire stack trace will go as one line instead of multiple lines?


Solution

  • You can customize the renderer of the stacktraces. There are two available ThrowableRenderer in Log4J ( org.apache.log4j.spi.ThrowableRenderer Interface) One is used by default. So, implements your own ThrowableRenderer with your wished formatting and then set it in your configuration.

    In Log4j 1, it works. Never try in Log42. https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html

    ThrowableRenderer You can customize the way an instance of Throwable is converted to String before being logged. This is done by specifying an ThrowableRenderer. The syntax is: log4j.throwableRenderer=fully.qualified.name.of.rendering.class log4j.throwableRenderer.paramName=paramValue As in, log4j.throwableRenderer=org.apache.log4j.EnhancedThrowableRenderer