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.
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 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::Socket & | ctcGetSocket ()
virtual helpers::Socket | ctcConnect ()
virtual void | ctcSetConnected ()
| Sets connected flag to true in ConnectorThread's client.
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 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::ConnectorThread > | connector
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
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?

## 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

enum log4cplus::SysLogAppender::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 | ) |

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

References facility, host, ident, ipv6, port, remoteSyslogType, and RSTUdp.

## SysLogAppender() [3/4]

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

References facility, host, ident, ipv6, port, and remoteSyslogType.

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

protected virtual

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

protected virtual

Returns
  ConnectorThread client's function returning connected socket.

Implements log4cplus::helpers::IConnectorThreadClient.

## ctcGetAccessMutex()

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.

## ctcGetSocket()

virtual helpers::Socket & log4cplus::SysLogAppender::ctcGetSocket | ( |  | ) |

protected virtual

Returns
  Socket variable in ConnectorThread client to maintain.

Implements log4cplus::helpers::IConnectorThreadClient.

## ctcSetConnected()

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

protected virtual

Sets connected flag to true in ConnectorThread's client.

Implements log4cplus::helpers::IConnectorThreadClient.

## getSysLogLevel()

virtual int log4cplus::SysLogAppender::getSysLogLevel | ( | const LogLevel & | ll | ) | const

protected virtual

## 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.

Referenced by SysLogAppender(), and SysLogAppender().

## host

tstring log4cplus::SysLogAppender::host

protected

Definition at line 134 of file syslogappender.h.

Referenced by SysLogAppender(), and SysLogAppender().

## ident

tstring log4cplus::SysLogAppender::ident

protected

Definition at line 127 of file syslogappender.h.

Referenced by SysLogAppender(), SysLogAppender(), and SysLogAppender().

## ipv6

bool log4cplus::SysLogAppender::ipv6 = false

protected

Definition at line 139 of file syslogappender.h.

Referenced by SysLogAppender(), and SysLogAppender().

## port

int log4cplus::SysLogAppender::port

protected

Definition at line 135 of file syslogappender.h.

Referenced by SysLogAppender(), and SysLogAppender().

## remoteSyslogType

RemoteSyslogType log4cplus::SysLogAppender::remoteSyslogType

protected

Definition at line 136 of file syslogappender.h.

Referenced by SysLogAppender(), and SysLogAppender().

## remoteTimeFormat

tstring const log4cplus::SysLogAppender::remoteTimeFormat

static protected

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:

- syslogappender.h