log4cplus  2.1.0
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
log4cplus::TimeBasedRollingFileAppender Class Reference

TimeBasedRollingFileAppender extends FileAppenderBase so that the underlying file is rolled over at a user chosen frequency while also keeping in check a total maximum number of produced files. More...

#include <fileappender.h>

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

Public Member Functions

 TimeBasedRollingFileAppender (const tstring &filename=LOG4CPLUS_TEXT(""), const tstring &filenamePattern=LOG4CPLUS_TEXT("%d.log"), int maxHistory=10, bool cleanHistoryOnStart=false, bool immediateFlush=true, bool createDirs=false, bool rollOnClose=true)
 
 TimeBasedRollingFileAppender (const helpers::Properties &properties)
 
 ~TimeBasedRollingFileAppender ()
 
- Public Member Functions inherited from log4cplus::FileAppenderBase
virtual std::locale imbue (std::locale const &loc)
 Redefine default locale for output stream. More...
 
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. More...
 
bool isClosed () const
 Check if this appender is in closed state. More...
 
void syncDoAppend (const log4cplus::spi::InternalLoggingEvent &event)
 This method performs threshold checks and invokes filters before delegating actual logging to the subclasses specific {} method. More...
 
void asyncDoAppend (const log4cplus::spi::InternalLoggingEvent &event)
 This method performs book keeping related to asynchronous logging and executes syncDoAppend() to do the actual logging. More...
 
void doAppend (const log4cplus::spi::InternalLoggingEvent &event)
 This function checks async flag. More...
 
virtual log4cplus::tstring getName ()
 Get the name of this appender. More...
 
virtual void setName (const log4cplus::tstring &name)
 Set the name of this appender. More...
 
virtual void setErrorHandler (std::unique_ptr< ErrorHandler > eh)
 Set the ErrorHandler for this Appender. More...
 
virtual ErrorHandlergetErrorHandler ()
 Return the currently set ErrorHandler for this Appender. More...
 
virtual void setLayout (std::unique_ptr< Layout > layout)
 Set the layout for this appender. More...
 
virtual LayoutgetLayout ()
 Returns the layout of this appender. More...
 
void setFilter (log4cplus::spi::FilterPtr f)
 Set the filter chain on this Appender. More...
 
log4cplus::spi::FilterPtr getFilter () const
 Get the filter chain on this Appender. More...
 
void addFilter (log4cplus::spi::FilterPtr f)
 Add filter at the end of the filters chain. More...
 
void addFilter (std::function< spi::FilterResult(const log4cplus::spi::InternalLoggingEvent &)>)
 Add filter at the end of the filters chain. More...
 
LogLevel getThreshold () const
 Returns this appenders threshold LogLevel. More...
 
void setThreshold (LogLevel th)
 Set the threshold LogLevel. More...
 
bool isAsSevereAsThreshold (LogLevel ll) const
 Check whether the message LogLevel is below the appender's threshold. More...
 
void waitToFinishAsyncLogging ()
 This method waits for all events that are being asynchronously logged to finish. More...
 
- Public Member Functions inherited from log4cplus::helpers::SharedObject
void addReference () const LOG4CPLUS_NOEXCEPT
 
void removeReference () const
 

Protected Member Functions

void append (const spi::InternalLoggingEvent &event)
 Subclasses of Appender should implement this method to perform actual logging. More...
 
void open (std::ios_base::openmode mode)
 
void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc. More...
 
void rollover (bool alreadyLocked=false)
 
void clean (helpers::Time time)
 
helpers::Time::duration getRolloverPeriodDuration () const
 
helpers::Time calculateNextRolloverTime (const helpers::Time &t) const
 
- 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 ()
 
bool reopen ()
 
- Protected Member Functions inherited from log4cplus::Appender
tstringformatEvent (const log4cplus::spi::InternalLoggingEvent &event) const
 
- Protected Member Functions inherited from log4cplus::helpers::SharedObject
 SharedObject ()
 
 SharedObject (const SharedObject &)
 
 SharedObject (SharedObject &&)
 
virtual ~SharedObject ()
 
SharedObjectoperator= (const SharedObject &) LOG4CPLUS_NOEXCEPT
 
SharedObjectoperator= (SharedObject &&) LOG4CPLUS_NOEXCEPT
 

Protected Attributes

tstring filenamePattern
 
DailyRollingFileSchedule schedule
 
tstring scheduledFilename
 
int maxHistory
 
bool cleanHistoryOnStart
 
log4cplus::helpers::Time lastHeartBeat
 
log4cplus::helpers::Time nextRolloverTime
 
bool rollOnClose
 
- 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. More...
 
bool createDirs
 When this variable is true, FileAppender will try to create missing directories in path leading to log file. More...
 
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. More...
 
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< Layoutlayout
 The layout variable does not need to be set if the appender implementation has its own layout. More...
 
log4cplus::tstring name
 Appenders are named. More...
 
LogLevel threshold
 There is no LogLevel threshold filtering by default. More...
 
log4cplus::spi::FilterPtr filter
 The first filter in the filter chain. More...
 
std::unique_ptr< ErrorHandlererrorHandler
 It is assumed and enforced that errorHandler is never null. More...
 
std::unique_ptr< helpers::LockFilelockFile
 Optional system wide synchronization lock. More...
 
bool useLockFile
 Use lock file for inter-process synchronization of access to log file. More...
 
bool async
 Asynchronous append. More...
 
std::atomic< std::size_t > in_flight
 
std::mutex in_flight_mutex
 
std::condition_variable in_flight_condition
 
bool closed
 Is this appender closed? More...
 

Additional Inherited Members

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

Detailed Description

TimeBasedRollingFileAppender extends FileAppenderBase so that the underlying file is rolled over at a user chosen frequency while also keeping in check a total maximum number of produced files.

Properties

Properties additional to FileAppenderBase's properties:

FilenamePattern

The mandatory fileNamePattern property defines the name of the rolled-over (archived) log files. Its value should consist of the name of the file, plus a suitably placed d conversion specifier. The d conversion specifier may contain a date-and-time pattern as specified by the java's SimpleDateFormat. The rollover period is inferred from the value of fileNamePattern.

MaxHistory

The optional maxHistory property controls the maximum number of archive files to keep, deleting older files.

CleanHistoryOnStart

If set to true, archive removal will be executed on appender start up. By default this property is set to false.

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.

Definition at line 385 of file fileappender.h.

Constructor & Destructor Documentation

◆ TimeBasedRollingFileAppender() [1/2]

log4cplus::TimeBasedRollingFileAppender::TimeBasedRollingFileAppender ( const tstring filename = LOG4CPLUS_TEXT(""),
const tstring filenamePattern = LOG4CPLUS_TEXT("%d.log"),
int  maxHistory = 10,
bool  cleanHistoryOnStart = false,
bool  immediateFlush = true,
bool  createDirs = false,
bool  rollOnClose = true 
)

◆ TimeBasedRollingFileAppender() [2/2]

log4cplus::TimeBasedRollingFileAppender::TimeBasedRollingFileAppender ( const helpers::Properties properties)

◆ ~TimeBasedRollingFileAppender()

log4cplus::TimeBasedRollingFileAppender::~TimeBasedRollingFileAppender ( )

Member Function Documentation

◆ append()

void log4cplus::TimeBasedRollingFileAppender::append ( const spi::InternalLoggingEvent event)
protectedvirtual

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

See also
doAppend method.

Reimplemented from log4cplus::FileAppenderBase.

◆ calculateNextRolloverTime()

helpers::Time log4cplus::TimeBasedRollingFileAppender::calculateNextRolloverTime ( const helpers::Time t) const
protected

◆ clean()

void log4cplus::TimeBasedRollingFileAppender::clean ( helpers::Time  time)
protected

◆ close()

void log4cplus::TimeBasedRollingFileAppender::close ( )
protectedvirtual

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.

◆ getRolloverPeriodDuration()

helpers::Time::duration log4cplus::TimeBasedRollingFileAppender::getRolloverPeriodDuration ( ) const
protected

◆ open()

void log4cplus::TimeBasedRollingFileAppender::open ( std::ios_base::openmode  mode)
protectedvirtual

Reimplemented from log4cplus::FileAppenderBase.

◆ rollover()

void log4cplus::TimeBasedRollingFileAppender::rollover ( bool  alreadyLocked = false)
protected

Member Data Documentation

◆ cleanHistoryOnStart

bool log4cplus::TimeBasedRollingFileAppender::cleanHistoryOnStart
protected

Definition at line 414 of file fileappender.h.

◆ filenamePattern

tstring log4cplus::TimeBasedRollingFileAppender::filenamePattern
protected

Definition at line 410 of file fileappender.h.

◆ lastHeartBeat

log4cplus::helpers::Time log4cplus::TimeBasedRollingFileAppender::lastHeartBeat
protected

Definition at line 415 of file fileappender.h.

◆ maxHistory

int log4cplus::TimeBasedRollingFileAppender::maxHistory
protected

Definition at line 413 of file fileappender.h.

◆ nextRolloverTime

log4cplus::helpers::Time log4cplus::TimeBasedRollingFileAppender::nextRolloverTime
protected

Definition at line 416 of file fileappender.h.

◆ rollOnClose

bool log4cplus::TimeBasedRollingFileAppender::rollOnClose
protected

Definition at line 417 of file fileappender.h.

◆ schedule

DailyRollingFileSchedule log4cplus::TimeBasedRollingFileAppender::schedule
protected

Definition at line 411 of file fileappender.h.

◆ scheduledFilename

tstring log4cplus::TimeBasedRollingFileAppender::scheduledFilename
protected

Definition at line 412 of file fileappender.h.


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