[ https://issues.apache.org/jira/browse/LOG4J2-3177?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17435078#comment-17435078 ]
Ralph Goers commented on LOG4J2-3177: ------------------------------------- The ListAppender is "bi-modal". If you configure it with a Layout then it stores the Strings as rendered by the Layout. If you don't give it a Layout it will store the raw events. So you have to know how you configured it and whether to call get getEvents() or getMessages(). There is also an option to retrieve the rendered events as a byte array instead of a String. > Log4jLogger swallows stack trace if throwable is only present in parameter > list and not given explicitly > -------------------------------------------------------------------------------------------------------- > > Key: LOG4J2-3177 > URL: https://issues.apache.org/jira/browse/LOG4J2-3177 > Project: Log4j 2 > Issue Type: Bug > Components: SLF4J Bridge > Affects Versions: 2.14.1 > Reporter: Richard Eckart de Castilho > Priority: Major > Attachments: Screenshot 2021-10-25 at 07.36.19.png, Screenshot > 2021-10-25 at 07.39.17.png > > > I have the feeling that this code below from the Log4jLogger class has a bug. > I believe the intention of the code is to use the throwable extracted from > the message params of the parametrized message if the {{throwable}} parameter > was not explicitly provided to the method. But to accomplish this, the > condition would need to be {{if (throwable == null)}} in the code snippet > below. This seems to cause exception stack traces to be swallowed if the > throwable is only provided in the params array but not explicitly in the > {{throwable}} argument. > {code} > public void log(final Marker marker, final String fqcn, final int level, > final String message, final Object[] params, Throwable throwable) { > ... > msg = new ParameterizedMessage(message, params, throwable); > if (throwable != null) { // I am pretty sure the idea was to use a "==" > here and not a "!=" > throwable = msg.getThrowable(); > } > ... > } > {code} > Source (permalink master at reporting time): > https://github.com/apache/logging-log4j2/blob/1a62186816bdd05ba420e01f6ee5a2b139a41816/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java#L371-L374 > Source (latest master): > https://github.com/apache/logging-log4j2/blob/master/log4j-slf4j-impl/src/main/java/org/apache/logging/slf4j/Log4jLogger.java#L371-L374 > I hit the issue in Log4J 2.10.0 but checking the GitHub repo, it appears that > this code is still present on the current master branch (see permalink above). -- This message was sent by Atlassian Jira (v8.3.4#803005)