Apache log4cxx  Version 0.12.1
log4cxx::DailyRollingFileAppender Class Reference

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

#include <dailyrollingfileappender.h>

Inheritance diagram for log4cxx::DailyRollingFileAppender:
log4cxx::rolling::RollingFileAppenderSkeleton log4cxx::FileAppender log4cxx::WriterAppender log4cxx::AppenderSkeleton log4cxx::Appender log4cxx::helpers::Object log4cxx::spi::OptionHandler log4cxx::helpers::Object

Public Member Functions

 DailyRollingFileAppender ()
 The default constructor simply calls its parents constructor. More...
 
 DailyRollingFileAppender (const LayoutPtr &layout, const LogString &filename, const LogString &datePattern)
 Instantiate a DailyRollingFileAppender and open the file designated by filename. More...
 
void setDatePattern (const LogString &pattern)
 The DatePattern takes a string in the same format as expected by SimpleDateFormat. More...
 
LogString getDatePattern () const
 Returns the value of the DatePattern option. More...
 
void setOption (const LogString &option, const LogString &value)
 Set option to value. More...
 
void activateOptions (log4cxx::helpers::Pool &)
 Prepares DailyRollingFileAppender for use. More...
 
- Public Member Functions inherited from log4cxx::rolling::RollingFileAppenderSkeleton
 RollingFileAppenderSkeleton ()
 The default constructor simply calls its parents constructor. More...
 
void activateOptions (log4cxx::helpers::Pool &)
 
bool rollover (log4cxx::helpers::Pool &p)
 Implements the usual roll over behaviour. More...
 
void close ()
 Close appender. More...
 
size_t getFileLength () const
 Get byte length of current active log file. More...
 
void incrementFileLength (size_t increment)
 Increments estimated byte length of current active log file. More...
 
- Public Member Functions inherited from log4cxx::FileAppender
 FileAppender ()
 The default constructor does not do anything. More...
 
 FileAppender (const LayoutPtr &layout, const LogString &filename, bool append, bool bufferedIO, int bufferSize)
 Instantiate a FileAppender and open the file designated by filename. More...
 
 FileAppender (const LayoutPtr &layout, const LogString &filename, bool append)
 Instantiate a FileAppender and open the file designated by filename. More...
 
 FileAppender (const LayoutPtr &layout, const LogString &filename)
 Instantiate a FileAppender and open the file designated by filename. More...
 
 ~FileAppender ()
 
virtual void setFile (const LogString &file)
 The File property takes a string value which should be the name of the file to append to. More...
 
bool getAppend () const
 Returns the value of the Append option. More...
 
LogString getFile () const
 Returns the value of the File option. More...
 
void setOption (const LogString &option, const LogString &value)
 Set option to value. More...
 
bool getBufferedIO () const
 Get the value of the BufferedIO option. More...
 
int getBufferSize () const
 Get the size of the IO buffer. More...
 
void setAppend (bool fileAppend1)
 The Append option takes a boolean value. More...
 
void setBufferedIO (bool bufferedIO)
 The BufferedIO option takes a boolean value. More...
 
void setBufferSize (int bufferSize1)
 Set the size of the IO buffer. More...
 
- Public Member Functions inherited from log4cxx::WriterAppender
 WriterAppender ()
 This default constructor does nothing. More...
 
 ~WriterAppender ()
 
void setImmediateFlush (bool value)
 If the ImmediateFlush option is set to true, the appender will flush at the end of each write. More...
 
bool getImmediateFlush () const
 Returns value of the ImmediateFlush option. More...
 
virtual void append (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 This method is called by the AppenderSkeleton::doAppend method. More...
 
LogString getEncoding () const
 
void setEncoding (const LogString &value)
 
void setOption (const LogString &option, const LogString &value)
 Set option to value. More...
 
void setWriter (const log4cxx::helpers::WriterPtr &writer)
 
virtual bool requiresLayout () const
 Configurators call this method to determine if the appender requires a layout. More...
 
- Public Member Functions inherited from log4cxx::AppenderSkeleton
 AppenderSkeleton ()
 
 AppenderSkeleton (const LayoutPtr &layout)
 
void finalize ()
 Finalize this appender by calling the derived class' close method. More...
 
void addFilter (const spi::FilterPtr &newFilter)
 Add a filter to end of the filter list. More...
 
void clearFilters ()
 Clear the filters chain. More...
 
const spi::ErrorHandlerPtrgetErrorHandler () const
 Return the currently set spi::ErrorHandler for this Appender. More...
 
spi::FilterPtr getFilter () const
 Returns the head Filter. More...
 
const spi::FilterPtrgetFirstFilter () const
 Return the first filter in the filter chain for this Appender. More...
 
LayoutPtr getLayout () const
 Returns the layout of this appender. More...
 
LogString getName () const
 Returns the name of this Appender. More...
 
const LevelPtrgetThreshold () const
 Returns this appenders threshold level. More...
 
bool isAsSevereAsThreshold (const LevelPtr &level) const
 Check whether the message level is below the appender's threshold. More...
 
virtual void doAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)
 This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific AppenderSkeleton::append method. More...
 
void setErrorHandler (const spi::ErrorHandlerPtr eh)
 Set the ErrorHandler for this Appender. More...
 
void setLayout (const LayoutPtr &layout1)
 Set the layout for this appender. More...
 
void setName (const LogString &name1)
 Set the name of this Appender. More...
 
void setThreshold (const LevelPtr &threshold)
 Set the threshold level. More...
 
- Public Member Functions inherited from log4cxx::Appender
virtual ~Appender ()
 
void asdf ()
 
- Public Member Functions inherited from log4cxx::spi::OptionHandler
virtual ~OptionHandler ()
 
- Public Member Functions inherited from log4cxx::helpers::Object
virtual ~Object ()
 
virtual bool instanceof (const Class &clazz) const =0
 
virtual const void * cast (const Class &clazz) const =0
 

Additional Inherited Members

- Static Public Member Functions inherited from log4cxx::FileAppender
static LogString stripDuplicateBackslashes (const LogString &name)
 Replaces double backslashes with single backslashes for compatibility with paths from earlier XML configurations files. More...
 
- Protected Member Functions inherited from log4cxx::rolling::RollingFileAppenderSkeleton
virtual void subAppend (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &p)
 Actual writing occurs here. More...
 
bool rolloverInternal (log4cxx::helpers::Pool &p)
 
RollingPolicyPtr getRollingPolicy () const
 
TriggeringPolicyPtr getTriggeringPolicy () const
 
void setRollingPolicy (const RollingPolicyPtr &policy)
 Sets the rolling policy. More...
 
void setTriggeringPolicy (const TriggeringPolicyPtr &policy)
 
log4cxx::helpers::WriterPtr createWriter (log4cxx::helpers::OutputStreamPtr &os)
 Returns an OutputStreamWriter when passed an OutputStream. More...
 
- Protected Member Functions inherited from log4cxx::FileAppender
void activateOptionsInternal (log4cxx::helpers::Pool &p)
 
void setFileInternal (const LogString &file, bool append, bool bufferedIO, size_t bufferSize, log4cxx::helpers::Pool &p)
 Sets and opens the file where the log output will go. More...
 
void setFileInternal (const LogString &file)
 
- Protected Member Functions inherited from log4cxx::WriterAppender
 WriterAppender (const LayoutPtr &layout, log4cxx::helpers::WriterPtr &writer)
 
 WriterAppender (const LayoutPtr &layout)
 
virtual bool checkEntryConditions () const
 This method determines if there is a sense in attempting to append. More...
 
void closeWriter ()
 Close the underlying log4cxx::helpers::Writer. More...
 
virtual void writeFooter (log4cxx::helpers::Pool &p)
 Write a footer as produced by the embedded layout's Layout::appendFooter method. More...
 
virtual void writeHeader (log4cxx::helpers::Pool &p)
 Write a header as produced by the embedded layout's Layout::appendHeader method. More...
 
void setWriterInternal (const log4cxx::helpers::WriterPtr &writer)
 Set the writer. More...
 
- Protected Member Functions inherited from log4cxx::AppenderSkeleton
void doAppendImpl (const spi::LoggingEventPtr &event, log4cxx::helpers::Pool &pool)
 
- Protected Attributes inherited from log4cxx::FileAppender
bool fileAppend
 Append to or truncate the file? The default value for this variable is true, meaning that by default a FileAppender will append to an existing file and not truncate it. More...
 
LogString fileName
 The name of the log file. More...
 
bool bufferedIO
 Do we do bufferedIO? More...
 
int bufferSize
 How big should the IO buffer be? Default is 8K. More...
 
- Protected Attributes inherited from log4cxx::AppenderSkeleton
LayoutPtr layout
 The layout variable does not need to be set if the appender implementation has its own layout. More...
 
LogString name
 Appenders are named. More...
 
LevelPtr threshold
 There is no level threshold filtering by default. More...
 
spi::ErrorHandlerPtr errorHandler
 It is assumed and enforced that errorHandler is never null. More...
 
spi::FilterPtr headFilter
 The first filter in the filter chain. More...
 
spi::FilterPtr tailFilter
 The last filter in the filter chain. More...
 
bool closed
 Is this appender closed? More...
 
log4cxx::helpers::Pool pool
 
log4cxx::shared_mutex mutex
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ DailyRollingFileAppender() [1/2]

log4cxx::DailyRollingFileAppender::DailyRollingFileAppender ( )

The default constructor simply calls its parents constructor.

◆ DailyRollingFileAppender() [2/2]

log4cxx::DailyRollingFileAppender::DailyRollingFileAppender ( const LayoutPtr layout,
const LogString filename,
const LogString datePattern 
)

Instantiate a DailyRollingFileAppender and open the file designated by filename.

The opened filename will become the ouput destination for this appender.

Member Function Documentation

◆ activateOptions()

void log4cxx::DailyRollingFileAppender::activateOptions ( log4cxx::helpers::Pool )
virtual

Prepares DailyRollingFileAppender for use.

Reimplemented from log4cxx::WriterAppender.

◆ getDatePattern()

LogString log4cxx::DailyRollingFileAppender::getDatePattern ( ) const

Returns the value of the DatePattern option.

◆ setDatePattern()

void log4cxx::DailyRollingFileAppender::setDatePattern ( const LogString pattern)

The DatePattern takes a string in the same format as expected by SimpleDateFormat.

This options determines the rollover schedule.

◆ setOption()

void log4cxx::DailyRollingFileAppender::setOption ( const LogString option,
const LogString value 
)
virtual

Set option to value.

The handling of each option depends on the OptionHandler instance. Some options may become active immediately whereas other may be activated only when activateOptions is called.

Reimplemented from log4cxx::AppenderSkeleton.


The documentation for this class was generated from the following file: