[ 
https://issues.apache.org/jira/browse/LOG4J2-2623?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Yueguang Jiao updated LOG4J2-2623:
----------------------------------
    Description: 
As says in the summary. If we do
{code:java}
logger.info("Message: {}", "Test - {}")
{code}
The final message is
{code:java}
Message: Test - Test - {}
{code}
Which should be
{code:java}
Message: Test - {}
{code}
See the code at 
[log4j-to-slf4j-test|https://github.com/lasyard/code-java-maven/blob/main/utils/src/test/java/io/github/lasyard/utils/Log4jToSlf4jTest.java].

After some investigation, I think the reason may lies in 
log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLogger#logMessage
{code:java}
locationAwareLogger.log(getMarker(marker), fqcn, convertLevel(level), 
message.getFormattedMessage(),
message.getParameters(), t);
{code}
The String returned by message.getFormattedMessage() is already formatted.

  was:
As says in the summary. If we do
{code:java}
logger.info("Message: {}", "Test - {}")
{code}
The final message is
{code:java}
Message: Test - Test - {}
{code}
Which should be
{code:java}
Message: Test - {}
{code}
See the code at 
[log4j-to-slf4j-test|https://github.com/lasyard/log4j-to-slf4j-test].

After some investigation, I think the reason may lies in 
log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLogger#logMessage
{code:java}
locationAwareLogger.log(getMarker(marker), fqcn, convertLevel(level), 
message.getFormattedMessage(),
message.getParameters(), t);
{code}
The String returned by message.getFormattedMessage() is already formatted.


> log4j-to-slf4j: Messages are formatted twice if there happen to be a `{}` in 
> the parameters
> -------------------------------------------------------------------------------------------
>
>                 Key: LOG4J2-2623
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2623
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: API
>    Affects Versions: 2.11.1, 2.11.2
>         Environment: MacOS Majave
> Java 1.8
> log4j2
> logback
>            Reporter: Yueguang Jiao
>            Priority: Major
>              Labels: easyfix
>
> As says in the summary. If we do
> {code:java}
> logger.info("Message: {}", "Test - {}")
> {code}
> The final message is
> {code:java}
> Message: Test - Test - {}
> {code}
> Which should be
> {code:java}
> Message: Test - {}
> {code}
> See the code at 
> [log4j-to-slf4j-test|https://github.com/lasyard/code-java-maven/blob/main/utils/src/test/java/io/github/lasyard/utils/Log4jToSlf4jTest.java].
> After some investigation, I think the reason may lies in 
> log4j-to-slf4j/src/main/java/org/apache/logging/slf4j/SLF4JLogger#logMessage
> {code:java}
> locationAwareLogger.log(getMarker(marker), fqcn, convertLevel(level), 
> message.getFormattedMessage(),
> message.getParameters(), t);
> {code}
> The String returned by message.getFormattedMessage() is already formatted.



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

Reply via email to