[ https://issues.apache.org/jira/browse/LOG4J2-774?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14096367#comment-14096367 ]
Remko Popma commented on LOG4J2-774: ------------------------------------ I think we should follow the principle of least surprise and follow what log4j-1.2, log4net and log4perl do as the default. The PatternLayout is not designed to be machine-parsable and no format will prevent values from containing separator characters. The solution for that is to use XMLLayout or some other format designed to be machine parsable. (An alternative is to use a fixed width, like Frank's original example, in which case any format is equally parsable.) Making this configurable feels a bit overkill, but if people really want multiple formats then of course I don't object. However, it is not high on my list of priorities and I won't have time to work on this for a while. If anyone wants to work on this, how about these format specifiers? * %x\{plain\}: Outputs space-separated stack elements without enclosing brackets. * %x\{list\}: Outputs stack elements in enclosed in [AbstractCollection.toString()|http://docs.oracle.com/javase/7/docs/api/java/util/AbstractCollection.html#toString%28%29] format: enclosed in square brackets with the elements separated by comma+space. (%x\{list\} is shorter and more intuitive to me than %x\{collection\}.) > NdcPatternConverter breaks Log4j 1.2.x layout > --------------------------------------------- > > Key: LOG4J2-774 > URL: https://issues.apache.org/jira/browse/LOG4J2-774 > Project: Log4j 2 > Issue Type: Bug > Components: Layouts > Affects Versions: 2.0.1 > Reporter: Frank Wißmann > Priority: Minor > Labels: patch > Fix For: 2.0.2 > > Attachments: NdcPatternConverter.java.patch > > > In Log4j 1.2.17 NdcPatternConverter.format() returns an empty string "" or > the stack messages separated by space "a b c" > (NDC.DiagnosticContext.fullMessage). > The PatternLayout \[%20.20x\] results in > {code}[ ]{code} or {code}[ a b c]{code}. > In Log4j 2.0.1 NdcPatternConverter.format() returns an unmodified > Collection.toString() representation: "\[\]" for an empty collection or the > collection separated by comma "\[a, b, c\]" > (DefaultThreadContextStack.toString() and > MutableThreadContextStack.toString()). > The PatternLayout \[%20.20x\] results in {code}[ []]{code} > or {code}[ [a, b, c]]{code}. -- This message was sent by Atlassian JIRA (v6.2#6252) --------------------------------------------------------------------- To unsubscribe, e-mail: log4j-dev-unsubscr...@logging.apache.org For additional commands, e-mail: log4j-dev-h...@logging.apache.org