Re: Property substitution doesn't work in log4j2 xml config

Ralph Goers <[email protected]> Mon, 30 Oct 2023 21:32:48 -0700
Newsgroups gmane.comp.jakarta.log4j.user
Message-ID <[email protected]>
I’d need to see the rest of your main. For example does it declare a Logger? If so where is it in relation to the static block?

Ralph

> On Oct 30, 2023, at 7:25 AM, Alex Orlov <[email protected]> wrote:
> 
> 
> Hi all,
>  
> I use log4j 2.21.1. This is my xml config file:
>  
>     <?xml version="1.0" encoding="UTF-8"?>
>     <Configuration status="debug">
>         <Appenders>
>             <File name="File" fileName="./../log/log-${sys:foo.test}.txt" immediateFlush="true" append="false">
>                 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{[%level]}{FATAL=bright_red bold, ERROR=red bold, WARN=yellow bold, INFO=blue bold, DEBUG=green bold, TRACE=magenta bold} [%t] %logger{36} - %msg%n" disableAnsi="false"/>
>             </File>
>         </Appenders>
>     
>         <Loggers>
>             <Root level="debug">
>                 <AppenderRef ref="File"/>
>             </Root>
>         </Loggers>
>     </Configuration>
>  
> This is a piece of my MainClass:
>  
>     public final class MainClass {
>     
>         static {
>             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hhmmss");
>             System.setProperty("foo.test", dateFormat.format(new Date()));
>         }
>     
>         .....
>     }
>  
> However, the generated log file is `log-${sys:foo.test}.txt`. I mean:
>  
>     user@pc:~/Temp/log$ ls
>     'log-${sys:foo.test}.txt'
>  
> According to docs https://logging.apache.org/log4j/2.x/manual/configuration.html#PropertySubstitution my solution must work but it doesn't. Could anyone say how to fix it?
>  
>  
> --
> Best regards, Alex Orlov