[
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)