log4cplus_FileAppenderBase(3)

log4cplus::FileAppenderBase(3) log4cplus log4cplus::FileAppenderBase(3)

NAME

log4cplus::FileAppenderBase - Base class for Appenders writing log events to a file.

SYNOPSIS

#include <fileappender.h>

Inherits log4cplus::Appender.

Inherited by log4cplus::FileAppender, and log4cplus::TimeBasedRollingFileAppender.

Public Member Functions


virtual void close ()
Release any resources allocated within the appender such as file handles, network connections, etc. virtual std::locale imbue (std::locale const &loc)
Redefine default locale for output stream. 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


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 append (const spi::InternalLoggingEvent &event)
Subclasses of Appender should implement this method to perform actual logging. 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


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
Use lock file for inter-process synchronization of access to log file. 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

Base class for Appenders writing log events to a file.

It is constructed with uninitialized file object, so all classes derived from FileAppenderBase must call init() method.

Properties

File
This property specifies output file name.
ImmediateFlush
When it is set true, output stream will be flushed after each appended event.
Append
When it is set true, output file will be appended to instead of being truncated at opening.
ReopenDelay
This property sets a delay after which the appender will try to reopen log file again, after last logging failure.
BufferSize
Non-zero value of this property sets up buffering of output stream using a buffer of given size.
UseLockFile
Set this property to true if you want your output to go into a log file shared by multiple processes. When this property is set to true then log4cplus uses OS specific facilities (e.g., lockf()) to provide inter-process file locking.

See also

Appender
LockFile
This property specifies lock file, file used for inter-process synchronization of log file access. When this property is not specified, the value is derived from File property by addition of '.lock' suffix. The property is only used when UseLockFile is set to true.

See also

Appender
Locale
This property specifies a locale name that will be imbued into output stream. Locale can be specified either by system specific locale name, e.g., en_US.UTF-8, or by one of four recognized keywords: GLOBAL, DEFAULT (which is an alias for GLOBAL), USER and CLASSIC. When specified locale is not available, GLOBAL is used instead. It is possible to register additional locale keywords by registering an instance of spi::LocaleFactory in spi::LocaleFactoryRegistry.

See also

spi::getLocaleFactoryRegistry()
CreateDirs
Set this property to true if you want to create missing directories in path leading to log file and lock file.
TextMode
Set this property to Binary if the underlying stream should not translate EOLs to OS specific character sequence. The default value is Text and the underlying stream will be opened in text mode.

Definition at line 117 of file fileappender.h.

Constructor & Destructor Documentation

log4cplus::FileAppenderBase::FileAppenderBase (const log4cplus::tstring & filename, std::ios_base::openmode mode = std::ios_base::trunc, bool immediateFlush = true, bool createDirs = false) [protected]

log4cplus::FileAppenderBase::FileAppenderBase (const log4cplus::helpers::Properties & properties, std::ios_base::openmode mode = std::ios_base::trunc) [protected]

Member Function Documentation

virtual void log4cplus::FileAppenderBase::append (const spi::InternalLoggingEvent & event) [protected], [virtual]

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

See also

doAppend method.

Implements log4cplus::Appender.

Reimplemented in log4cplus::RollingFileAppender, log4cplus::DailyRollingFileAppender, and log4cplus::TimeBasedRollingFileAppender.

virtual void log4cplus::FileAppenderBase::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.

Implements log4cplus::Appender.

Reimplemented in log4cplus::DailyRollingFileAppender, and log4cplus::TimeBasedRollingFileAppender.

virtual std::locale log4cplus::FileAppenderBase::getloc () const [virtual]

Returns

Locale imbued in fstream.

virtual std::locale log4cplus::FileAppenderBase::imbue (std::locale const & loc) [virtual]

Redefine default locale for output stream. It may be a good idea to provide UTF-8 locale in case UNICODE macro is defined.

void log4cplus::FileAppenderBase::init () [protected]

virtual void log4cplus::FileAppenderBase::open (std::ios_base::openmode mode) [protected], [virtual]

Reimplemented in log4cplus::TimeBasedRollingFileAppender.

bool log4cplus::FileAppenderBase::reopen () [protected]

Member Data Documentation

std::unique_ptr<log4cplus::tchar[]> log4cplus::FileAppenderBase::buffer [protected]

Definition at line 178 of file fileappender.h.

unsigned long log4cplus::FileAppenderBase::bufferSize [protected]

Definition at line 177 of file fileappender.h.

bool log4cplus::FileAppenderBase::createDirs [protected]

When this variable is true, FileAppender will try to create missing directories in path leading to log file. The createDirs variable is set to false by default.

Definition at line 166 of file fileappender.h.

log4cplus::tstring log4cplus::FileAppenderBase::filename [protected]

Definition at line 181 of file fileappender.h.

std::ios_base::openmode log4cplus::FileAppenderBase::fileOpenMode [protected]

Definition at line 184 of file fileappender.h.

bool log4cplus::FileAppenderBase::immediateFlush [protected]

Immediate flush means that the underlying writer or output stream will be flushed at the end of each append operation. Immediate flush is slower but ensures that each append request is actually written. If immediateFlush is set to false, then there is a good chance that the last few logs events are not actually written to persistent media if and when the application crashes.

The immediateFlush variable is set to true by default.

Definition at line 158 of file fileappender.h.

log4cplus::tstring log4cplus::FileAppenderBase::localeName [protected]

Definition at line 182 of file fileappender.h.

log4cplus::tstring log4cplus::FileAppenderBase::lockFileName [protected]

Definition at line 183 of file fileappender.h.

log4cplus::tofstream log4cplus::FileAppenderBase::out [protected]

Definition at line 180 of file fileappender.h.

log4cplus::helpers::Time log4cplus::FileAppenderBase::reopen_time [protected]

Definition at line 186 of file fileappender.h.

int log4cplus::FileAppenderBase::reopenDelay [protected]

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. If reopenDelay is zero, each failed append operation will cause log file to be re-opened. By default, reopenDelay is 1 second.

Definition at line 175 of file fileappender.h.

Author

Generated automatically by Doxygen for log4cplus from the source code.

Mon Jun 5 2023 21:46:10 Version 2.0.7