log4cplus  2.1.0
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
log4cplus::SysLogAppender Class Reference

Appends log events to a file. More...

#include <syslogappender.h>

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

Public Types

enum  RemoteSyslogType { RSTUdp , RSTTcp }
 Remote syslog IP protocol type. More...
 

Public Member Functions

 SysLogAppender (const tstring &ident)
 
 SysLogAppender (const tstring &ident, const tstring &host, int port=514, const tstring &facility=tstring(), RemoteSyslogType remoteSyslogType=RSTUdp, bool ipv6=false)
 
 SysLogAppender (const tstring &ident, const tstring &host, int port, const tstring &facility, RemoteSyslogType remoteSyslogType, bool ipv6, bool fqdn)
 
 SysLogAppender (const log4cplus::helpers::Properties &properties)
 
virtual ~SysLogAppender ()
 
virtual void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc. More...
 
- 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 Types

typedef void(SysLogAppender::* AppendFuncType) (const spi::InternalLoggingEvent &)
 

Protected Member Functions

virtual int getSysLogLevel (const LogLevel &ll) const
 
virtual void append (const spi::InternalLoggingEvent &event)
 Subclasses of Appender should implement this method to perform actual logging. More...
 
void appendLocal (const spi::InternalLoggingEvent &event)
 Local syslog (served by syslog()) worker function. More...
 
void appendRemote (const spi::InternalLoggingEvent &event)
 Remote syslog worker function. More...
 
void initConnector ()
 
void openSocket ()
 
virtual thread::Mutex const & ctcGetAccessMutex () const
 
virtual helpers::SocketctcGetSocket ()
 
virtual helpers::Socket ctcConnect ()
 
virtual void ctcSetConnected ()
 Sets connected flag to true in ConnectorThread's client. More...
 
- 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 Member Functions inherited from log4cplus::helpers::IConnectorThreadClient
virtual ~IConnectorThreadClient ()
 

Protected Attributes

tstring ident
 
int facility
 
AppendFuncType appendFunc
 
tstring host
 
int port
 
RemoteSyslogType remoteSyslogType
 
helpers::Socket syslogSocket
 
bool connected
 
bool ipv6 = false
 
helpers::SharedObjectPtr< helpers::ConnectorThreadconnector
 
- 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...
 

Static Protected Attributes

static tstring const remoteTimeFormat
 

Additional Inherited Members

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

Detailed Description

Appends log events to a file.

Properties

ident

First argument to openlog(), a string that will be prepended to every message.

facility

Facility is used in combination with syslog level in first argument to syslog(). It can be one of the supported facility names (case insensitive), e.g. auth, cron, kern, mail, news etc.

host

Destination syslog host. When this property is specified, messages are sent using UDP to destination host, otherwise messages are logged to local syslog.

port

Destination port of syslog service on host specified by the host property. The default value is port 514.

udp

When the syslog is remote, this property picks the IP protocol. When the value is true, UDP is used. When the value is false, TCP is used. The default value is true.

IPv6

Boolean value specifying whether to use IPv6 (true) or IPv4 (false). Default value is false.

fqdn

Boolean value specifying whether to use FQDN for hostname field. Default value is true.

Note
Messages sent to remote syslog using UDP are conforming to RFC5424. Messages sent to remote syslog using TCP are using octet counting as described in RFC6587.

Definition at line 84 of file syslogappender.h.

Member Typedef Documentation

◆ AppendFuncType

typedef void(SysLogAppender:: * log4cplus::SysLogAppender::AppendFuncType) (const spi::InternalLoggingEvent &)
protected

Definition at line 130 of file syslogappender.h.

Member Enumeration Documentation

◆ RemoteSyslogType

Remote syslog IP protocol type.

Enumerator
RSTUdp 
RSTTcp 

Definition at line 92 of file syslogappender.h.

Constructor & Destructor Documentation

◆ SysLogAppender() [1/4]

log4cplus::SysLogAppender::SysLogAppender ( const tstring ident)

◆ SysLogAppender() [2/4]

log4cplus::SysLogAppender::SysLogAppender ( const tstring ident,
const tstring host,
int  port = 514,
const tstring facility = tstring(),
RemoteSyslogType  remoteSyslogType = RSTUdp,
bool  ipv6 = false 
)

◆ SysLogAppender() [3/4]

log4cplus::SysLogAppender::SysLogAppender ( const tstring ident,
const tstring host,
int  port,
const tstring facility,
RemoteSyslogType  remoteSyslogType,
bool  ipv6,
bool  fqdn 
)

◆ SysLogAppender() [4/4]

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

◆ ~SysLogAppender()

virtual log4cplus::SysLogAppender::~SysLogAppender ( )
virtual

Member Function Documentation

◆ append()

virtual void log4cplus::SysLogAppender::append ( const spi::InternalLoggingEvent event)
protectedvirtual

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

See also
doAppend method.

Implements log4cplus::Appender.

◆ appendLocal()

void log4cplus::SysLogAppender::appendLocal ( const spi::InternalLoggingEvent event)
protected

Local syslog (served by syslog()) worker function.

◆ appendRemote()

void log4cplus::SysLogAppender::appendRemote ( const spi::InternalLoggingEvent event)
protected

Remote syslog worker function.

◆ close()

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

◆ ctcConnect()

virtual helpers::Socket log4cplus::SysLogAppender::ctcConnect ( )
protectedvirtual
Returns
ConnectorThread client's function returning connected socket.

Implements log4cplus::helpers::IConnectorThreadClient.

◆ ctcGetAccessMutex()

virtual thread::Mutex const& log4cplus::SysLogAppender::ctcGetAccessMutex ( ) const
protectedvirtual
Returns
Mutex for synchronization between ConnectorThread and its client object. This is usually SharedObject::access_mutex.

Implements log4cplus::helpers::IConnectorThreadClient.

◆ ctcGetSocket()

virtual helpers::Socket& log4cplus::SysLogAppender::ctcGetSocket ( )
protectedvirtual
Returns
Socket variable in ConnectorThread client to maintain.

Implements log4cplus::helpers::IConnectorThreadClient.

◆ ctcSetConnected()

virtual void log4cplus::SysLogAppender::ctcSetConnected ( )
protectedvirtual

Sets connected flag to true in ConnectorThread's client.

Implements log4cplus::helpers::IConnectorThreadClient.

◆ getSysLogLevel()

virtual int log4cplus::SysLogAppender::getSysLogLevel ( const LogLevel ll) const
protectedvirtual

◆ initConnector()

void log4cplus::SysLogAppender::initConnector ( )
protected

◆ openSocket()

void log4cplus::SysLogAppender::openSocket ( )
protected

Member Data Documentation

◆ appendFunc

AppendFuncType log4cplus::SysLogAppender::appendFunc
protected

Definition at line 132 of file syslogappender.h.

◆ connected

bool log4cplus::SysLogAppender::connected
protected

Definition at line 138 of file syslogappender.h.

◆ connector

helpers::SharedObjectPtr<helpers::ConnectorThread> log4cplus::SysLogAppender::connector
protected

Definition at line 152 of file syslogappender.h.

◆ facility

int log4cplus::SysLogAppender::facility
protected

Definition at line 128 of file syslogappender.h.

◆ host

tstring log4cplus::SysLogAppender::host
protected

Definition at line 134 of file syslogappender.h.

◆ ident

tstring log4cplus::SysLogAppender::ident
protected

Definition at line 127 of file syslogappender.h.

◆ ipv6

bool log4cplus::SysLogAppender::ipv6 = false
protected

Definition at line 139 of file syslogappender.h.

◆ port

int log4cplus::SysLogAppender::port
protected

Definition at line 135 of file syslogappender.h.

◆ remoteSyslogType

RemoteSyslogType log4cplus::SysLogAppender::remoteSyslogType
protected

Definition at line 136 of file syslogappender.h.

◆ remoteTimeFormat

tstring const log4cplus::SysLogAppender::remoteTimeFormat
staticprotected

Definition at line 141 of file syslogappender.h.

◆ syslogSocket

helpers::Socket log4cplus::SysLogAppender::syslogSocket
protected

Definition at line 137 of file syslogappender.h.


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