## 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 | At midnight of May 31st, 2002 `/foo/bar.log` will be copied to `/foo/bar.log.2002-05`. Logging for the month of June will be output to `/foo/bar.log` until it is also rolled over the next month.
`'.'yyyy-ww` | Rollover at the first day of each week. The first day of the week depends on the locale. | Assuming the first day of the week is Sunday, on Saturday midnight, June 9th 2002, the file /foo/bar.log will be copied to /foo/bar.log.2002-23. Logging for the 24th week of 2002 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 8th, 2002, `/foo/bar.log` will be copied to `/foo/bar.log.2002-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, 2002, `/foo/bar.log` will be copied to `/foo/bar.log.2002-03-09-AM`. Logging for the afternoon of the 9th will be output to `/foo/bar.log` until it is rolled over at midnight.
`'.'yyyy-MM-dd-HH` | Rollover at the top of every hour. | At approximately 11:00.000 o'clock on March 9th, 2002, `/foo/bar.log` will be copied to `/foo/bar.log.2002-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

Fields inherited from class org.apache.log4j.FileAppender
`bufferedIO, bufferSize, fileAppend, fileName`

Fields inherited from class org.apache.log4j.WriterAppender
`encoding, immediateFlush, qw`

Fields inherited from class org.apache.log4j.AppenderSkeleton
`closed, errorHandler, headFilter, layout, name, tailFilter, threshold`

Constructor Summary
`DailyRollingFileAppender()` The default constructor does nothing.
`DailyRollingFileAppender(Layout layout, java.lang.String filename, java.lang.String datePattern)` Instantiate a `DailyRollingFileAppender` and open the file designated by `filename`.

Method Summary
`void` `activateOptions()` If the value of File is not `null`, then `FileAppender.setFile(java.lang.String)` is called with the values of File and Append properties.
`java.lang.String` `getDatePattern()` Returns the value of the DatePattern option.
`void` `setDatePattern(java.lang.String pattern)` The DatePattern takes a string in the same format as expected by `SimpleDateFormat`.
`protected void` `subAppend(LoggingEvent event)` This method differentiates DailyRollingFileAppender from its super class.

Methods inherited from class org.apache.log4j.FileAppender
`closeFile, getAppend, getBufferedIO, getBufferSize, getFile, reset, setAppend, setBufferedIO, setBufferSize, setFile, setFile, setQWForFiles`

Methods inherited from class org.apache.log4j.WriterAppender
`append, checkEntryConditions, close, closeWriter, createWriter, getEncoding, getImmediateFlush, requiresLayout, setEncoding, 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`

Constructor Detail

### DailyRollingFileAppender

    public DailyRollingFileAppender()

  The default constructor does nothing.

### DailyRollingFileAppender

    public DailyRollingFileAppender(Layout layout,
                                    java.lang.String filename,
                                    java.lang.String datePattern)
                             throws java.io.IOException

  Instantiate a `DailyRollingFileAppender` and open the file designated by `filename`. The opened filename will become the ouput destination for this appender.

  Throws:
    `java.io.IOException`

Method Detail

### setDatePattern

    public void setDatePattern(java.lang.String pattern)

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

### getDatePattern

    public java.lang.String getDatePattern()

  Returns the value of the DatePattern option.

### activateOptions

    public void activateOptions()

  Description copied from class: `FileAppender`
  If the value of File is not `null`, then `FileAppender.setFile(java.lang.String)` is called with the values of File and Append properties.

  Specified by:
    `activateOptions` in interface `OptionHandler`
  Overrides:
    `activateOptions` in class `FileAppender`

### subAppend

    protected void subAppend(LoggingEvent event)

  This method differentiates DailyRollingFileAppender from its super class.

  Before actually logging, this method will check whether it is time to do a rollover. If it is, it will schedule the next rollover time and then rollover.

  Overrides:
    `subAppend` in class `WriterAppender`

Copyright © 1999-2007 Apache Software Foundation. All Rights Reserved.