I have simple question.
How to have log file name dynamically supplied from code?
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">
<Appenders>
<RollingFile name="RollingFile" fileName="${logfilename}.log"
filePattern="logs/$${date:yyyy-MM}/app-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="6" modulate="true"/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="error">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
Here file name is logs/app.log.
- How to make it dynamic with date and time appended as well in file name? Though pattern is applied but it doesn't work.
- Here logs is the directory which log4j library automatically creates, can it be dynamic as well?
EDIT In parameter fileName
I have placed ${logfilename}.log
and setting system property as below:
System.setProperty("logfilename", "a_cool_logname");
Now it is creating file with name ${logfilename}.log
which is definitely not required.
Thanks