Thanks for the clarification Ralph. Best regards, Behrang Saeedzadeh
On 4 January 2018 at 13:27, Ralph Goers <ralph.go...@dslextreme.com> wrote: > When the configuration is read all variables are resolved, so every > variable with a single $ will be replaced with its value. When a variable > needs to be resolved at run time you must use 2 $ characters. The first > will be stripped off leaving the variable reference. That property will > then be evaluated at the appropriate time. > > In the configuration below $${env:USER} would be evaluated for each log > event. However, since “env” means it is an environment variable it is > unlikely this value will change at runtime so it could have been specified > with a single $. If it had been $${mdc:USER} then the USER variable from > the thread context at the time the log event is processed would be > substituted. > > Ralph > > > On Jan 3, 2018, at 5:40 PM, Behrang Saeedzadeh <behran...@gmail.com> > wrote: > > > > From the docs, $$ inside the <pattern> element: > > > > > > 1. <File name="Application" fileName="application.log"> > > 2. <PatternLayout> > > 3. <pattern>%d %p %c{1.} [%t] $${env:USER} %m%n</pattern> > > 4. </PatternLayout> > > 5. </File> > > > > > > Also from the docs, $ inside the header attribute: > > > > > > 1. <File name="Application" fileName="application.log"> > > 2. <PatternLayout header="${java:runtime} - ${java:vm} - ${java:os}"> > > 3. <Pattern>%d %m%n</Pattern> > > 4. </PatternLayout> > > 5. </File> > > > > > > I just read the docs on property substitution and how StrLookup treat > > variables with multiple leading '$' characters, but it is not obvious to > me > > why in the two examples above, in one example two leading $ signs are > used, > > and in the other only one $ is used. > > > > Best regards, > > Behrang Saeedzadeh > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org > For additional commands, e-mail: log4j-user-h...@logging.apache.org > >