[ 
https://issues.apache.org/jira/browse/LOG4J2-1002?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14526795#comment-14526795
 ] 

Robert Schaft commented on LOG4J2-1002:
---------------------------------------

I have no clue why and who wrote these tests. Perhaps that person could answer 
the initial question how to get the line break on short messages right.

But the test failures make on thing clear: It breaks the compatibility to prior 
versions. So technically a new major version would be required.
But if this no-newline-feature is really used somewhere - I don't know.

The onThrowable solution could be on the other hand implemented for the next 
minor version.

> 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]

Reply via email to