log4cplus  2.0.0
Public Member Functions | Protected Member Functions | Protected Attributes
log4cplus::FileAppender Class Reference

Appends log events to a file. More...

#include <fileappender.h>

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

List of all members.

Public Member Functions

 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 ()
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

Protected Member Functions

virtual void append (const spi::InternalLoggingEvent &event)
 Subclasses of Appender should implement this method to perform actual logging.
void open (std::ios_base::openmode mode)
bool reopen ()

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::helpers::Time reopen_time

Detailed Description

Appends log events to a file.

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.

Definition at line 109 of file fileappender.h.


Constructor & Destructor Documentation

log4cplus::FileAppender::FileAppender ( const log4cplus::tstring filename,
std::ios_base::openmode  mode = std::ios_base::trunc,
bool  immediateFlush = true,
bool  createDirs = false 
)
log4cplus::FileAppender::FileAppender ( const log4cplus::helpers::Properties properties,
std::ios_base::openmode  mode = std::ios_base::trunc 
)

Member Function Documentation

virtual void log4cplus::FileAppender::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::DailyRollingFileAppender, and log4cplus::RollingFileAppender.

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

virtual std::locale log4cplus::FileAppender::getloc ( ) const [virtual]
Returns:
Locale imbued in fstream.
virtual std::locale log4cplus::FileAppender::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::FileAppender::open ( std::ios_base::openmode  mode) [protected]
bool log4cplus::FileAppender::reopen ( ) [protected]

Member Data Documentation

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

Definition at line 170 of file fileappender.h.

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

Definition at line 169 of file fileappender.h.

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 158 of file fileappender.h.

Definition at line 173 of file fileappender.h.

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 150 of file fileappender.h.

Definition at line 174 of file fileappender.h.

Definition at line 172 of file fileappender.h.

Definition at line 176 of file fileappender.h.

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 167 of file fileappender.h.


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