|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.log4j.AppenderSkeleton
org.apache.log4j.WriterAppender
org.apache.log4j.FileAppender
org.norther.tammi.core.logger.log4j.RotatingFileAppender
public class RotatingFileAppender
RotatingFileAppender 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.
It 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 specification of a URL which is probably not what you want.
An additional size limit can be specified for rotating files.
Based on DailyRollingFileAppender in the Apache Jakarta
Log4J project.
| 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 | |
|---|---|
RotatingFileAppender()
Constructs a new appender without activation. |
|
RotatingFileAppender(Layout lout,
String filename)
Constructs and activates a new appender with a layout and filename. |
|
RotatingFileAppender(Layout lout,
String filename,
boolean append)
Constructs and activates a new appender with a layout and filename, and specifies whether to truncate the previous log file. |
|
RotatingFileAppender(Layout lout,
String filename,
String pattern)
Constructs and activates a new appender with a layout, filename and rotation pattern. |
|
| Method Summary | |
|---|---|
void |
activateOptions()
Prevents the superclass from activating itself until the first log event has been received. |
void |
append(LoggingEvent event)
Activates the superclass when the first log event has been received. |
int |
getFilesToKeep()
Gets the number of log files with the current filename to keep in the log folder. |
int |
getMaxFileSize()
Gets the size limit for log files. |
String |
getRotationPattern()
Gets the rotation pattern. |
String |
getTimeZoneId()
Gets the time zone. |
protected void |
rolledOver(File file)
A hook provided by RotatingFileAppender to process a log file roll over. |
void |
setFilesToKeep(int limit)
Sets the number of log files with the current filename to keep in the log folder. |
void |
setMaxFileSize(int limit)
Sets the size limit for log files. |
protected void |
setQWForFiles(Writer writer)
A hook provided by FileAppender to check file size. |
void |
setRotationPattern(String pattern)
Sets the rotation pattern. |
void |
setTimeZoneId(String zone)
Sets the time zone. |
protected void |
subAppend(LoggingEvent event)
A hook provided by FileAppender to check rotation. |
| Methods inherited from class org.apache.log4j.FileAppender |
|---|
closeFile, getAppend, getBufferedIO, getBufferSize, getFile, reset, setAppend, setBufferedIO, setBufferSize, setFile, setFile |
| Methods inherited from class org.apache.log4j.WriterAppender |
|---|
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 |
|---|
public RotatingFileAppender()
public RotatingFileAppender(Layout lout,
String filename)
lout - a layout.filename - the filename.
public RotatingFileAppender(Layout lout,
String filename,
boolean append)
lout - a layout.filename - the filename.append - if true, append to an existing file.
public RotatingFileAppender(Layout lout,
String filename,
String pattern)
lout - a layout.filename - the filename.pattern - a rotation pattern.| Method Detail |
|---|
public int getMaxFileSize()
public void setMaxFileSize(int limit)
limit - the size limit in kB.public int getFilesToKeep()
public void setFilesToKeep(int limit)
Note that the deletion of outdated files is based on filenames, not on modification dates. The rotation pattern should be selected accordingly.
limit - the number of files.public String getRotationPattern()
public void setRotationPattern(String pattern)
pattern - the rotation pattern.public String getTimeZoneId()
public void setTimeZoneId(String zone)
zone - the time zone.public void activateOptions()
activateOptions in interface OptionHandleractivateOptions in class FileAppenderpublic void append(LoggingEvent event)
append in class WriterAppenderevent - the logging event.protected void subAppend(LoggingEvent event)
AppenderSkeleton takes care of synchronization.
subAppend in class WriterAppenderevent - a logging event.protected void setQWForFiles(Writer writer)
setQWForFiles in class FileAppenderwriter - the file writer.protected void rolledOver(File file)
file - the log file that has just been rolled over.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||