log4cplus  2.0.0
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Static Protected Attributes
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]

List of all members.

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 log4cplus::helpers::Properties &properties)
virtual ~SysLogAppender ()
virtual void close ()
 Release any resources allocated within the appender such as file handles, network connections, etc.

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.
void appendLocal (const spi::InternalLoggingEvent &event)
 Local syslog (served by `syslog()`) worker function.
void appendRemote (const spi::InternalLoggingEvent &event)
 Remote syslog worker function.
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.

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::ConnectorThread
connector

Static Protected Attributes

static tstring const remoteTimeFormat

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.

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 80 of file syslogappender.h.


Member Typedef Documentation

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

Definition at line 123 of file syslogappender.h.


Member Enumeration Documentation

Remote syslog IP protocol type.

Enumerator:
RSTUdp 
RSTTcp 

Definition at line 88 of file syslogappender.h.


Constructor & Destructor Documentation

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

Member Function Documentation

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

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

Remote syslog worker function.

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.

virtual helpers::Socket log4cplus::SysLogAppender::ctcConnect ( ) [protected, virtual]
Returns:
ConnectorThread client's function returning connected socket.

Implements log4cplus::helpers::IConnectorThreadClient.

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

Implements log4cplus::helpers::IConnectorThreadClient.

virtual helpers::Socket& log4cplus::SysLogAppender::ctcGetSocket ( ) [protected, virtual]
Returns:
Socket variable in ConnectorThread client to maintain.

Implements log4cplus::helpers::IConnectorThreadClient.

virtual void log4cplus::SysLogAppender::ctcSetConnected ( ) [protected, virtual]

Sets connected flag to true in ConnectorThread's client.

Implements log4cplus::helpers::IConnectorThreadClient.

virtual int log4cplus::SysLogAppender::getSysLogLevel ( const LogLevel ll) const [protected, virtual]

Member Data Documentation

Definition at line 125 of file syslogappender.h.

Definition at line 131 of file syslogappender.h.

Definition at line 145 of file syslogappender.h.

Definition at line 121 of file syslogappender.h.

Definition at line 127 of file syslogappender.h.

Definition at line 120 of file syslogappender.h.

bool log4cplus::SysLogAppender::ipv6 = false [protected]

Definition at line 132 of file syslogappender.h.

Definition at line 128 of file syslogappender.h.

Definition at line 129 of file syslogappender.h.

Definition at line 134 of file syslogappender.h.

Definition at line 130 of file syslogappender.h.


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