Skip to Main Content

Java Programming

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

how to set log filename dynamically

807589Jul 29 2008 — edited Jul 29 2008
Hi all!
Could anybody give me a hint how I can set file name for log4j dynamically.
I have a log4j.properties file:
log4j.rootCategory=debug, stdout, R
#### First appender writes to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %-6p [%c{1}] %m%n

#### Second appender writes to a file
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender 
log4j.appender.R.DatePattern='.'yyyy-MM-dd
log4j.appender.R.File=Myfilename.log
log4j.appender.R.MaxFileSize=10000KB
log4j.appender.R.MaxBackupIndex=1

log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{ABSOLUTE} %-6p [%c{1}] %m%n
and following code in my class:
Logger LOGGER = Logger.getLogger(MyClass.class);
File logFile = new File("newFilename.log");
            logFile.createNewFile();
  
            FileAppender r = (FileAppender)LOGGER.getAppender("R");
            r.setFile(logFile.getAbsolutePath());
            r.activateOptions();
Unfortunately it does not work as r is NULL.
It throws java.lang.NullPointerException.
Could anybody help me?
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 26 2008
Added on Jul 29 2008
2 comments
3,371 views