Log4j 1.1.3

org.apache.log4j
Class DailyRollingFileAppender

java.lang.Object
  |
  +--org.apache.log4j.AppenderSkeleton
        |
        +--org.apache.log4j.WriterAppender
              |
              +--org.apache.log4j.FileAppender
                    |
                    +--org.apache.log4j.DailyRollingFileAppender
All Implemented Interfaces:
Appender, OptionHandler

public class DailyRollingFileAppender
extends FileAppender

DailyRollingFileAppender extends FileAppender so that the underlying file is rolled over at a user chosen frequency.

The rolling schedule is specified by the DatePattern option. This pattern should follow the SimpleDateFormat conventions. In particular, you must escape literal text within a pair of single quotes. A formatted version of the date pattern is used as the suffix for the rolled file name.

For example, if the File option is set to /foo/bar.log and the DatePattern set to '.'yyyy-MM-dd, on 2001-02-16 at midnight, the logging file /foo/bar.log will be copied to /foo/bar.log.2001-02-16 and logging for 2001-02-17 will continue in /foo/bar.log until it rolls over the next day.

Is is possible to specify monthly, weekly, half-daily, daily, hourly, or minutely rollover schedules.

DatePattern Rollover schedule Example
'.'yyyy-MM Rollover at the beginning of each month Assuming the first day of the week is Sunday, at Sunday 00:00, March 25th, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-03. Logging for the month of April will be output to /foo/bar.log until it rolls over at the beginning of May.
'.'yyyy-ww Rollover at the first day of each week. The first day of the week depends on the locale. At midnight, on March 31st, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-08. Logging for the 9th week of 2001 will be output to /foo/bar.log until it is rolled over the next week.
'.'yyyy-MM-dd Rollover at midnight each day. At midnight, on March 9th, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-03-08. Logging for the 9th day of March will be output to /foo/bar.log until it is rolled over the next day.
'.'yyyy-MM-dd-a Rollover at midnight and midday of each day. At noon, on March 9th, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-03-09-AM. Logging for the afternoon of the 9th will be output to /foo/bar.log until it is rolled over the next morning, i.e at midnight 00:00.
'.'yyyy-MM-dd-HH Rollover at the top of every hour. At approximately 11:00,000, on March 9th, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-03-09-10. Logging for the 11th hour of the 9th of March will be output to /foo/bar.log until it is rolled over at the beginning of the next hour.
'.'yyyy-MM-dd-HH-mm Rollover at the beginning of every minute. At approximately 11:23,000, on March 9th, 2001, /foo/bar.log will be copied to /foo/bar.log.2001-03-09-10-22. Logging for the minute of 11:23 (9th of March) will be output to /foo/bar.log until it is rolled over the next minute.

Do not use the colon ":" character in anywhere in the DatePattern option. The text before the colon is interpeted as the protocol specificaion of a URL which is probably not what you want.

Author:
Eirik Lygre, Ceki Gülcü

Field Summary
static String DATE_PATTERN_OPTION
          Deprecated. Options are now handled using the JavaBeans paradigm. This constant is not longer needed and will be removed in the near term.
 
Fields inherited from class org.apache.log4j.FileAppender
APPEND_OPTION, FILE_OPTION, fileAppend, fileName, qwIsOurs
 
Fields inherited from class org.apache.log4j.WriterAppender
IMMEDIATE_FLUSH_OPTION, immediateFlush, qw
 
Fields inherited from class org.apache.log4j.AppenderSkeleton
closed, errorHandler, headFilter, layout, name, tailFilter, threshold, THRESHOLD_OPTION
 
Constructor Summary
DailyRollingFileAppender()
          The default constructor does nothing.
DailyRollingFileAppender(Layout layout, String filename, String datePattern)
          Instantiate a DailyRollingFileAppender and open the file designated by filename.
 
Method Summary
 void activateOptions()
          If the value of FileAppender.FILE_OPTION is not null, then FileAppender.setFile(java.lang.String) is called with the values of FileAppender.FILE_OPTION and FileAppender.APPEND_OPTION.
 String getDatePattern()
          Returns the value of the DatePattern option.
 String[] getOptionStrings()
          Deprecated. We now use JavaBeans introspection to configure components. Options strings are no longer needed.
 void setDatePattern(String pattern)
          The DatePattern takes a string in the same format as expected by SimpleDateFormat.
 void setOption(String key, String value)
          Deprecated. Use the setter method for the option directly instead of the generic setOption method.
protected  void subAppend(LoggingEvent event)
          This method differentiates DailyRollingFileAppender from its super class.
 
Methods inherited from class org.apache.log4j.FileAppender
closeFile, getAppend, getFile, reset, setAppend, setFile, setFile, setQWForFiles
 
Methods inherited from class org.apache.log4j.WriterAppender
append, checkEntryConditions, close, closeWriter, getImmediateFlush, requiresLayout, setErrorHandler, setImmediateFlush, setWriter, writeFooter, writeHeader
 
Methods inherited from class org.apache.log4j.AppenderSkeleton
addFilter, clearFilters, doAppend, finalize, getErrorHandler, getFilter, getFirstFilter, getLayout, getName, getThreshold, isAsSevereAsThreshold, setLayout, setName, setThreshold
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DATE_PATTERN_OPTION

public static final String DATE_PATTERN_OPTION
Deprecated. Options are now handled using the JavaBeans paradigm. This constant is not longer needed and will be removed in the near term.

A string constant used in naming the option for setting the filename pattern. Current value of this string constant is DatePattern.
Constructor Detail

DailyRollingFileAppender

public DailyRollingFileAppender()
The default constructor does nothing.

DailyRollingFileAppender

public DailyRollingFileAppender(Layout layout,
                                String filename,
                                String datePattern)
                         throws IOException
Instantiate a DailyRollingFileAppender and open the file designated by filename. The opened filename will become the ouput destination for this appender.
Method Detail

setDatePattern

public void setDatePattern(String pattern)
The DatePattern takes a string in the same format as expected by SimpleDateFormat. This options determines the rollover schedule.

getDatePattern

public String getDatePattern()
Returns the value of the DatePattern option.

getOptionStrings

public String[] getOptionStrings()
Deprecated. We now use JavaBeans introspection to configure components. Options strings are no longer needed.

Returns the option names for this component, namely DATE_PATTERN_OPTION in addition to the options of FileAppender.
Overrides:
getOptionStrings in class FileAppender

setOption

public void setOption(String key,
                      String value)
Deprecated. Use the setter method for the option directly instead of the generic setOption method.

Set the options for the DailyRollingFileAppender instance.

The DatePattern takes a string in the same format as expected by SimpleDateFormat. This options determines the rollover schedule.

Be sure to refer to the options in the super classes FileAppender, WriterAppender and in particular the Threshold option in AppenderSkeleton.

Overrides:
setOption in class FileAppender

activateOptions

public void activateOptions()
Description copied from class: FileAppender
If the value of FileAppender.FILE_OPTION is not null, then FileAppender.setFile(java.lang.String) is called with the values of FileAppender.FILE_OPTION and FileAppender.APPEND_OPTION.
Overrides:
activateOptions in class FileAppender

subAppend

protected void subAppend(LoggingEvent event)
This method differentiates DailyRollingFileAppender from its super class.
Overrides:
subAppend in class WriterAppender

Log4j 1.1.3

Please notify me about new log4j releases.