log4cplus::DailyRollingFileAppender Class Reference

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

`#include <fileappender.h>`

Inheritance diagram for log4cplus::DailyRollingFileAppender:
[legend]
Collaboration diagram for log4cplus::DailyRollingFileAppender:
[legend]

## Public Member Functions

| DailyRollingFileAppender (const log4cplus::tstring &filename, DailyRollingFileSchedule schedule=DAILY, bool immediateFlush=true, int maxBackupIndex=10, bool createDirs=false, bool rollOnClose=true, const log4cplus::tstring &datePattern=log4cplus::tstring())
| DailyRollingFileAppender (const log4cplus::helpers::Properties &properties)
virtual | ~DailyRollingFileAppender ()
virtual void | close ()
| Release any resources allocated within the appender such as file handles, network connections, etc.
Public Member Functions inherited from log4cplus::FileAppender
| FileAppender (const log4cplus::tstring &filename, std::ios_base::openmode mode=std::ios_base::trunc, bool immediateFlush=true, bool createDirs=false)
| FileAppender (const log4cplus::helpers::Properties &properties, std::ios_base::openmode mode=std::ios_base::trunc)
virtual | ~FileAppender ()
Public Member Functions inherited from log4cplus::FileAppenderBase
virtual std::locale | imbue (std::locale const &loc)
virtual std::locale | getloc () const
Public Member Functions inherited from log4cplus::Appender
| Appender ()
| Appender (const log4cplus::helpers::Properties &properties)
virtual | ~Appender ()
void | destructorImpl ()
| This function is for derived appenders to call from their destructors.
bool | isClosed () const
| Check if this appender is in closed state.
void | syncDoAppend (const log4cplus::spi::InternalLoggingEvent &event)
| This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific `append` method.
void | asyncDoAppend (const log4cplus::spi::InternalLoggingEvent &event)
| This method performs book keeping related to asynchronous logging and executes syncDoAppend() to do the actual logging.
void | doAppend (const log4cplus::spi::InternalLoggingEvent &event)
| This function checks async flag.
virtual log4cplus::tstring | getName ()
| Get the name of this appender.
virtual void | setName (const log4cplus::tstring &name)
| Set the name of this appender.
virtual void | setErrorHandler (std::unique_ptr< ErrorHandler > eh)
| Set the `ErrorHandler` for this Appender.
virtual ErrorHandler * | getErrorHandler ()
| Return the currently set `ErrorHandler` for this Appender.
virtual void | setLayout (std::unique_ptr< Layout > layout)
| Set the layout for this appender.
virtual Layout * | getLayout ()
| Returns the layout of this appender.
void | setFilter (log4cplus::spi::FilterPtr f)
| Set the filter chain on this Appender.
log4cplus::spi::FilterPtr | getFilter () const
| Get the filter chain on this Appender.
void | addFilter (log4cplus::spi::FilterPtr f)
| Add filter at the end of the filters chain.
void | addFilter (std::function< spi::FilterResult(const log4cplus::spi::InternalLoggingEvent &)>)
| Add filter at the end of the filters chain.
LogLevel | getThreshold () const
| Returns this appenders threshold LogLevel.
void | setThreshold (LogLevel th)
| Set the threshold LogLevel.
bool | isAsSevereAsThreshold (LogLevel ll) const
| Check whether the message LogLevel is below the appender's threshold.
void | waitToFinishAsyncLogging ()
| This method waits for all events that are being asynchronously logged to finish.
Public Member Functions inherited from log4cplus::helpers::SharedObject
void | addReference () const LOG4CPLUS_NOEXCEPT
void | removeReference () const

## Protected Member Functions

virtual void | append (const spi::InternalLoggingEvent &event)
| Subclasses of `Appender` should implement this method to perform actual logging.
void | rollover (bool alreadyLocked=false)
log4cplus::helpers::Time | calculateNextRolloverTime (const log4cplus::helpers::Time &t) const
log4cplus::tstring | getFilename (const log4cplus::helpers::Time &t) const
Protected Member Functions inherited from log4cplus::FileAppender
void | init ()
Protected Member Functions inherited from log4cplus::FileAppenderBase
| FileAppenderBase (const log4cplus::tstring &filename, std::ios_base::openmode mode=std::ios_base::trunc, bool immediateFlush=true, bool createDirs=false)
| FileAppenderBase (const log4cplus::helpers::Properties &properties, std::ios_base::openmode mode=std::ios_base::trunc)
void | init ()
virtual void | open (std::ios_base::openmode mode)
bool | reopen ()
Protected Member Functions inherited from log4cplus::Appender
tstring & | formatEvent (const log4cplus::spi::InternalLoggingEvent &event) const
Protected Member Functions inherited from log4cplus::helpers::SharedObject
| SharedObject ()
| SharedObject (const SharedObject &)
| SharedObject (SharedObject &&)
virtual | ~SharedObject ()
SharedObject & | operator= (const SharedObject &) LOG4CPLUS_NOEXCEPT
SharedObject & | operator= (SharedObject &&) LOG4CPLUS_NOEXCEPT

## Protected Attributes

DailyRollingFileSchedule | schedule
log4cplus::tstring | scheduledFilename
log4cplus::helpers::Time | nextRolloverTime
int | maxBackupIndex
bool | rollOnClose
log4cplus::tstring | datePattern
Protected Attributes inherited from log4cplus::FileAppenderBase
bool | immediateFlush
| Immediate flush means that the underlying writer or output stream will be flushed at the end of each append operation.
bool | createDirs
| When this variable is true, FileAppender will try to create missing directories in path leading to log file.
int | reopenDelay
| When any append operation fails, `reopenDelay` says for how many seconds the next attempt to re-open the log file and resume logging will be delayed.
unsigned long | bufferSize
std::unique_ptr< log4cplus::tchar[]> | buffer
log4cplus::tofstream | out
log4cplus::tstring | filename
log4cplus::tstring | localeName
log4cplus::tstring | lockFileName
std::ios_base::openmode | fileOpenMode
log4cplus::helpers::Time | reopen_time
Protected Attributes inherited from log4cplus::Appender
std::unique_ptr< Layout > | layout
| The layout variable does not need to be set if the appender implementation has its own layout.
log4cplus::tstring | name
| Appenders are named.
LogLevel | threshold
| There is no LogLevel threshold filtering by default.
log4cplus::spi::FilterPtr | filter
| The first filter in the filter chain.
std::unique_ptr< ErrorHandler > | errorHandler
| It is assumed and enforced that errorHandler is never null.
std::unique_ptr< helpers::LockFile > | lockFile
| Optional system wide synchronization lock.
bool | useLockFile
bool | async
| Asynchronous append.
std::atomic< std::size_t > | in_flight
std::mutex | in_flight_mutex
std::condition_variable | in_flight_condition
bool | closed
| Is this appender closed?

## Additional Inherited Members

Public Attributes inherited from log4cplus::helpers::SharedObject
thread::Mutex | access_mutex

## Detailed Description

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

### Properties

Properties additional to `FileAppender`'s properties:

Schedule

  This property specifies rollover schedule. The possible values are MONTHLY, WEEKLY, DAILY, TWICE_DAILY, HOURLY and MINUTELY.

MaxBackupIndex

  This property limits how many backup files are kept per single logging period; e.g. how many log.2009-11-07.1, log.2009-11-07.2 etc. files are kept.

RollOnClose

  This property specifies whether to rollover log files upon shutdown. By default it's set to `true` to retain compatibility with legacy code, however it may lead to undesired behaviour as described in the github issue #120.

DatePattern

  This property specifies filename suffix pattern to use for periodical backups of the logfile. The patern should be in format supported by `log4cplus::helpers::Time::getFormatterTime()`. Please notice that the format of the pattern is similar but not identical to the one used for this option in the corresponding Log4J class. If the property isn't specified a reasonable default for a given schedule type is used.

Definition at line 311 of file fileappender.h.

## Constructor & Destructor Documentation

## DailyRollingFileAppender() [1/2]

log4cplus::DailyRollingFileAppender::DailyRollingFileAppender | ( | const log4cplus::tstring & | filename,
|  | DailyRollingFileSchedule | schedule = DAILY,
|  | bool | immediateFlush = true,
|  | int | maxBackupIndex = 10,
|  | bool | createDirs = false,
|  | bool | rollOnClose = true,
|  | const log4cplus::tstring & | datePattern = log4cplus::tstring() )

References log4cplus::FileAppenderBase::createDirs, log4cplus::DAILY, datePattern, log4cplus::FileAppenderBase::filename, log4cplus::FileAppenderBase::immediateFlush, maxBackupIndex, rollOnClose, and schedule.

## DailyRollingFileAppender() [2/2]

log4cplus::DailyRollingFileAppender::DailyRollingFileAppender | ( | const log4cplus::helpers::Properties & | properties | ) |

## ~DailyRollingFileAppender()

virtual log4cplus::DailyRollingFileAppender::~DailyRollingFileAppender | ( |  | ) |

virtual

## Member Function Documentation

## append()

virtual void log4cplus::DailyRollingFileAppender::append | ( | const spi::InternalLoggingEvent & | event | ) |

protected virtual

Subclasses of `Appender` should implement this method to perform actual logging.

See also
  doAppend method.

Reimplemented from log4cplus::FileAppenderBase.

## calculateNextRolloverTime()

log4cplus::helpers::Time log4cplus::DailyRollingFileAppender::calculateNextRolloverTime | ( | const log4cplus::helpers::Time & | t | ) | const

protected

## close()

virtual void log4cplus::DailyRollingFileAppender::close | ( |  | ) |

virtual

Release any resources allocated within the appender such as file handles, network connections, etc.

It is a programming error to append to a closed appender.

Reimplemented from log4cplus::FileAppenderBase.

## getFilename()

log4cplus::tstring log4cplus::DailyRollingFileAppender::getFilename | ( | const log4cplus::helpers::Time & | t | ) | const

protected

## rollover()

void log4cplus::DailyRollingFileAppender::rollover | ( | bool | alreadyLocked = false | ) |

protected

## Member Data Documentation

## datePattern

log4cplus::tstring log4cplus::DailyRollingFileAppender::datePattern

protected

Definition at line 341 of file fileappender.h.

Referenced by DailyRollingFileAppender().

## maxBackupIndex

int log4cplus::DailyRollingFileAppender::maxBackupIndex

protected

Definition at line 339 of file fileappender.h.

Referenced by DailyRollingFileAppender().

## nextRolloverTime

log4cplus::helpers::Time log4cplus::DailyRollingFileAppender::nextRolloverTime

protected

Definition at line 338 of file fileappender.h.

## rollOnClose

bool log4cplus::DailyRollingFileAppender::rollOnClose

protected

Definition at line 340 of file fileappender.h.

Referenced by DailyRollingFileAppender().

## schedule

DailyRollingFileSchedule log4cplus::DailyRollingFileAppender::schedule

protected

Definition at line 336 of file fileappender.h.

Referenced by DailyRollingFileAppender().

## scheduledFilename

log4cplus::tstring log4cplus::DailyRollingFileAppender::scheduledFilename

protected

Definition at line 337 of file fileappender.h.

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

- fileappender.h