You can also do this from the log4j.properties file. Using the sample file below I have added the system property ${logfile.name}:
# logfile is set to be a RollingFileAppender
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${logfile.name}
log4j.appender.logfile.MaxFileSize=10MB
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=[%-5p]%d{yyyyMMdd@HH\:mm\:ss,SSS}\:%c - %m%n
The log file name can then be set two different ways:
- As a command line, system property passed to java “-Dlogfile.name={logfile}”
-
In the java program directly by setting a system property (BEFORE you make any calls to log4j).
System.setProperty(“logfile.name”,”some path/logfile name string”);