[ 
https://jira.qos.ch/browse/SLF4J-421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=20255#comment-20255
 ] 

Jonathan Esssex commented on SLF4J-421:
---------------------------------------

I just submitted a PR for this

> LoggerWrapper and subclasses perform argument substitution twice 
> -----------------------------------------------------------------
>
>                 Key: SLF4J-421
>                 URL: https://jira.qos.ch/browse/SLF4J-421
>             Project: SLF4J
>          Issue Type: Bug
>          Components: slf4j-ext
>    Affects Versions: 1.7.x
>         Environment: Java 8; haven't tested with earlier versions or Java 9.
>            Reporter: Kristin Clemens
>            Assignee: SLF4J developers list
>              Labels: logging, substitution
>             Fix For: 2.0.0-alpha2
>
>         Attachments: log4j2.xml, ReproduceSlf4jExtBug.java, results.txt
>
>
> If a String containing "{}" (alone or with other characters) is passed to a 
> LoggerWrapper log method that takes a format string and arguments, or to a 
> subclass method that follows the same pattern, a situation can occur where an 
> argument is substituted into the place of the argument containing the 
> substitution brackets. That argument may be another string preceding the 
> string with brackets, or if the string with brackets is first, it may be that 
> argument itself.
> This also occurs with log methods following this pattern even when a string 
> format message is not expected, such as with XLogger entry and exit methods 
> or LoggerWrapper single argument methods.
> It's hard to describe effectively, so I'll provide some examples and test 
> cases to help.
> {code:java|title=Brackets Second|borderStyle=solid}
> log.error("{},{}", foo, "[{}]");
> // Expected
> [ERROR] ReproduceSlf4jBug - foo,[{}]
> // Actual
> [ERROR] ReproduceSlf4jBug - foo,[foo]
> {code}
> {code:java|title=Brackets First|borderStyle=solid}
> log.error("{},{}", "[{}]", foo);
> // Expected
> [ERROR] ReproduceSlf4jBug - [{}],foo
> // Actual
> [ERROR] ReproduceSlf4jBug - [[{}]],foo
> {code}
> *In the attached tests, a basic org.slf4j.Logger is tested with the same 
> arguments to provide a reference.*



--
This message was sent by Atlassian JIRA
(v7.3.1#73012)
_______________________________________________
slf4j-dev mailing list
slf4j-dev@qos.ch
http://mailman.qos.ch/mailman/listinfo/slf4j-dev

Reply via email to