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

Matt Sicker commented on LOG4J2-2738:
-------------------------------------

I thought this was why StatusLogger existed? We even have another logger class 
above it for bootstrapping before the API starts up.

> Message "ERROR Recursive call to appender" needs more diagnostic information.
> -----------------------------------------------------------------------------
>
>                 Key: LOG4J2-2738
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2738
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.12.1
>            Reporter: Dan Armbrust
>            Assignee: Ralph Goers
>            Priority: Minor
>         Attachments: Log4JRecurseTest.java, log4j2.xml
>
>
> The class AppenderControl has logic that is intended to detect recursive 
> calls to an appender.
>  
> {code:java}
> // code placeholder
>     @PerformanceSensitive
>     private boolean isRecursiveCall() {
>         if (recursive.get() != null) {
>             appenderErrorHandlerMessage("Recursive call to appender ");
>             return true;
>         }
>         return false;
>     }
> {code}
> However, the logic behind this is flawed, leading to erroneous ERROR messages 
> being printed on the console.
> In my use case, I have a log message being written,  utilizing the 
> ParameterizedMessage APIs.   When log4j formats my message, it calls the 
> toString method on the object being passed in.  If that toString() call 
> results in another log message being written, log4j logs this error, which I 
> believe to be erroneous.  Its not recursive... its just another log message 
> that happens to be triggered by the construction of the first log message.  
> This wouldn't lead to a recursive loop.
> This should probably be implemented with a depth counter, and only error if 
> it really does look recursive (deeper than 10 calls, or some such value).
> Also, the error logged should REALLY include a stack trace, so this isn't 
> such a PITA to track down if someone really does have a recursive logging 
> call.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to