[ https://issues.apache.org/jira/browse/LOG4J2-2032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carter Kozak resolved LOG4J2-2032. ---------------------------------- Resolution: Fixed Fix Version/s: 3.0.0 Resolved with the fix for LOG4J2-2118. > Curly braces in parameters are treated as placeholders > ------------------------------------------------------ > > Key: LOG4J2-2032 > URL: https://issues.apache.org/jira/browse/LOG4J2-2032 > Project: Log4j 2 > Issue Type: Bug > Components: Appenders, Layouts > Affects Versions: 2.8.2, 2.9.0, 2.10.0 > Environment: Tested on Windows and Linux. > java version "1.8.0_144" > Java(TM) SE Runtime Environment (build 1.8.0_144-b01) > Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) > Reporter: Kostiantyn Shchepanovskyi > Assignee: Carter Kozak > Priority: Major > Fix For: 3.0.0 > > > When logging event parameter contains two consecutive opening and closing > curly braces - {{for example {} in the middle of parameter}}, they are > treated as a placeholder and are substituted by provided parameters starting > from index zero. > I suspect that it affects only async loggers. > My configuration: > {code:xml} > <?xml version="1.0" encoding="UTF-8"?> > <Configuration> > <Appenders> > <Console name="console" target="SYSTEM_OUT"> > <PatternLayout> > <pattern>%level{length=1} %date{MMdd-HHmm:ss,SSS} %logger{1.} > %message %X [%thread]%n > </pattern> > </PatternLayout> > </Console> > <Async name="asyncFile"> > <AppenderRef ref="console"/> > </Async> > </Appenders> > <Loggers> > <Root level="info"> > <AppenderRef ref="asyncFile"/> > </Root> > </Loggers> > </Configuration> > {code} > Test: > {code:java} > package com.playtech.live.platform.core.service; > import org.junit.jupiter.api.Test; > import org.slf4j.Logger; > import org.slf4j.LoggerFactory; > public class Log4jCurlyBracesInParameterTest { > private static final Logger LOGGER = > LoggerFactory.getLogger(Log4jCurlyBracesInParameterTest.class); > @Test > void messageWithCurlyBracesInParameter() { > LOGGER.info("Text containing curly braces: {}", "Curly{}"); > LOGGER.info("Normal text: {}, text containing curly braces {}", > "Normal", "Curly{}"); > } > } > {code} > Expected output: > {code} > I 0905-1731:01,018 c.p.l.p.c.s.Log4jCurlyBracesInParameterTest Text > containing curly braces: Curly{} {} [main] > I 0905-1731:01,033 c.p.l.p.c.s.Log4jCurlyBracesInParameterTest Normal text: > Normal, text containing curly braces Curly{} {} [main] > {code} > Actual output: > {code} > I 0905-1731:01,018 c.p.l.p.c.s.Log4jCurlyBracesInParameterTest Text > containing curly braces: CurlyCurly{} {} [main] > I 0905-1731:01,033 c.p.l.p.c.s.Log4jCurlyBracesInParameterTest Normal text: > Normal, text containing curly braces CurlyNormal {} [main] > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)