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ü
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 |
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.
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.
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.
- 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 2000-2002 Apache Software Foundation.