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

Matt Sicker commented on LOG4J2-631:
------------------------------------

Looking at AbstractLoggerProvider in log4j-api, the MessageFactory is a private 
final field. This is done at construction, and since Loggers are keyed by name, 
you can't use multiple loggers with the same name and different MessageFactory 
instances. If you were to allow having two named loggers with different message 
factories, what would LogManager.getLogger("name") do? You have two potential 
Logger objects to get. I don't think this makes any sense. Probably invalid.

> Cannot use formatter logger and standard logger with same name
> --------------------------------------------------------------
>
>                 Key: LOG4J2-631
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-631
>             Project: Log4j 2
>          Issue Type: Bug
>    Affects Versions: 2.0-rc1
>            Reporter: Alexandre Gattiker
>
> {code}
> public class Example {
>       private final static Logger FORMATTER_LOGGER = 
> LogManager.getFormatterLogger(Example.class);
>       private final static Logger LOGGER = 
> LogManager.getLogger(Example.class);
>       public static void main(String[] args) {
>               LOGGER.log(ERROR, "{} happened", "Something");
>               FORMATTER_LOGGER.log(ERROR, "%s happened", "Something");
>       }
> }
> {code}
> {noformat}
> 13:40:35.401 [main] ERROR com.example.Example - {} happened
> 13:40:35.404 [main] ERROR com.example.Example - Something happened
> {noformat}
> After inverting the two constant declarations:
> {noformat}
> 13:41:13.730 [main] ERROR com.example.Example - Something happened
> 13:41:13.732 [main] ERROR com.example.Example - %s happened
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to