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

Michael Vorburger commented on LOG4J2-1180:
-------------------------------------------

{quote}[~garydgregory], [~ralph.go...@dslextreme.com], [~mikaelstaldal] can you 
take a look at SLF4JLoggerContext? It looks like the {{getLogger(String, 
MessageFactory)}} method currently ignores the MessageFactory, and when I try 
to fix that in the spirit of LOG4J2-1180, the test in log4j-to-slf4j 
org.a.l.slf4j.LoggerTest breaks... (getLogger_String_MessageFactoryMismatchNull 
and getLogger_String_MessageFactoryMismatch) Is there something special about 
SLF4J Loggers that they must be unique by name only, not by 
name/MessageFactory? Or are the current implementation and the test simply 
wrong - LOG4J2-1180 was not addressed correctly here?
{quote}
https://github.com/apache/logging-log4j2/pull/651/ fixes this FYI.

> Logger cache does not account for message factory
> -------------------------------------------------
>
>                 Key: LOG4J2-1180
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-1180
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 2.4.1
>            Reporter: Gary D. Gregory
>            Assignee: Gary D. Gregory
>            Priority: Major
>             Fix For: 2.5, 2.6.1
>
>         Attachments: LOG4J2-1180-ggregory.patch, LOG4J2-1180.diff
>
>
> The Logger cache does not account for a logger's message factory.
> If you call {{LogManager.getLogger(Class|Object|String, MessageFactory)}} and 
> then call a getLogger() API again with the same {{Class|Object|String}} a 
> different message factory, you get the Logger that was first created which 
> means you will not get the proper formatted messages.
> For example:
> {code:java}
> Logger loggerA1 = LogManager.getLogger("A", messageFactory1);
> Logger loggerA2 = LogManager.getLogger("A", messageFactory2);
> {code}
> loggerA1 is the same as loggerA2.
> This is a problem if two unrelated code bases (jars) both the same Logger 
> names|objects|classes.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to