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

Ralph Goers resolved LOG4J2-2799.
---------------------------------
    Resolution: Won't Fix

The problem is not with being able to obtain the value of the lookup. It is 
that the properties are injected on each LogEvent. The filename of the 
RollingFileAppender is immutable so it cannot be changed after the 
RollingFileAppender is created.

> Thread context map property resolution doesn't work for Appender's filename
> ---------------------------------------------------------------------------
>
>                 Key: LOG4J2-2799
>                 URL: https://issues.apache.org/jira/browse/LOG4J2-2799
>             Project: Log4j 2
>          Issue Type: Bug
>          Components: Configuration
>    Affects Versions: 2.13.1
>         Environment: * log4j 2.13.1
>  * macOS 10.13.6
>  * Java 11.0.2
>            Reporter: André Pinto
>            Priority: Major
>
> The documentation says:
>  
> {noformat}
> A LoggerConfig (including the root LoggerConfig) can be configured with 
> properties that will be added to the properties copied from the 
> ThreadContextMap. These properties can be referenced from Appenders, Filters, 
> Layouts, etc just as if they were part of the ThreadContext Map.{noformat}
> but if I set a property "*prop*" for a logger and try to use it for in the 
> appender filename by referencing "*${ctx:prop}*" the variable is not replaced.
> This functionality would be useful for reusing appender configuration by 
> loggers that need different filenames.
> Example of configuration:
>  
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <Configuration status="warn" name="MyApp" packages="">
>     <Properties>
>         <Property name="LOG_DIR">logs</Property>
>     </Properties>
>     <Appenders>
>         <Console name="Console" target="SYSTEM_OUT"/>
>         <RollingFile
>                 name="rollingFile"
>                 fileName="${LOG_DIR}/${ctx:filename-prefix}.log-active"
>                 filePattern="${LOG_DIR}/${ctx:filename-prefix}.%d{dd-MMM}.log"
>                 ignoreExceptions="false">
>             <PatternLayout>
>                 <Pattern>%m</Pattern>
>             </PatternLayout>
>             <Policies>
>                 <OnStartupTriggeringPolicy />
>                 <SizeBasedTriggeringPolicy size="10 MB" />
>                 <TimeBasedTriggeringPolicy />
>             </Policies>
>             <DefaultRolloverStrategy max="5" />
>         </RollingFile>
>         <Async name="Async">
>             <AppenderRef ref="rollingFile"/>
>         </Async>
>     </Appenders>
>     <Loggers>
>         <Root level="OFF">
>             <AppenderRef ref="Console" />
>         </Root>
>         <Logger name="main-server" level="INFO" additivity="false">
>             <Property name="filename-prefix">server</Property>
>             <AppenderRef ref="Async"/>
>         </Logger>
>         <Logger name="main-serverNotify" level="INFO" additivity="false">
>             <Property name="filename-prefix">serverNotify</Property>
>             <AppenderRef ref="Async"/>
>         </Logger>
>     </Loggers>
> </Configuration>
> {code}
> This seems to be an old common problem of thread context map resolution as 
> reported in [https://stackoverflow.com/q/49953883/43046] in April 2018.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to