[
https://issues.apache.org/jira/browse/LOG4J2-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Gregory updated LOG4J2-1002:
---------------------------------
Summary: PatternLayout is missing a new line for Exceptions with the short
option (was: PatternLayout, newlines and Exceptions)
> PatternLayout is missing a new line for Exceptions with the short option
> ------------------------------------------------------------------------
>
> Key: LOG4J2-1002
> URL: https://issues.apache.org/jira/browse/LOG4J2-1002
> Project: Log4j 2
> Issue Type: Bug
> Components: Layouts, Pattern Converters
> Affects Versions: 2.2
> Environment: Windows, eclipse
> Reporter: Robert Schaft
> Original Estimate: 336h
> Remaining Estimate: 336h
>
> I am struggeling to get the PatternLayout right when using %throwable, %ex or
> similar.
> The first problem is, that if the exception is limited by the number of lines
> (e.g. with the option {{short}} or providing a number), the converter
> {{ExtendedThrowablePatternConverter}} doesn't attach a newline to the end of
> the stack.
> On the other hand it does attach a newline at the end of the full stack.
> That is why
> {quote}
> {{<PatternLayout pattern="%msg%n%ex" />}}
> {quote}
> produces the expected result for message with and without throwables: there
> are no empty lines in the log file and every log message starts in a new
> line.
> What about {{%ex\{short\}}}?
> {quote}
> {{<PatternLayout pattern="%msg%n%ex\{short\}" />}}
> {quote}
> This has the problem that messages with throwables do not end with a new
> line. This produces all kinds of problems.
> Ok, let's add a newline
> {quote}
> {{<PatternLayout alwaysWriteExceptions="false" pattern="%msg%n%ex\{short\}%n"
> />}}
> {quote}
> This has the problem that messages _without_ throwables are followed by an
> empty line. This is not acceptable on the console.
> So we need something more complicated:
> {quote}
> {{<PatternLayout alwaysWriteExceptions="false"
> pattern="%msg%replace\{%n%ex\{short\}%n\}\{\[\r\n]+$\}\{\}%n" />}}
> {quote}
> Yeah! It works (at least on Windows, Unix, Linux, Mac) and if the
> undocumented throwable {{separator}} option is not used. But it's ugly and
> requires the alwaysWriteExceptions because the throwable pattern detection
> does not work any more.
> Short Term solution: Always add a newline to the exception.
> Long Term Solution:
> Add a conversion pattern {{%onThrowable\{pattern1\}\[\{pattern2\}]}} where
> pattern1 is appended when there is a throwable attached to the log message
> and the optional pattern2 is appended when there is no throwable appended.
> The {{alwaysWriteExceptions="false"}} parameter could be replaced by
> {{pattern="%onThrowable\{\}"}}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]