class RemoteSyslogListener

Library: Net
Package: Logging
Header: Poco/Net/RemoteSyslogListener.h


RemoteSyslogListener implents listening for syslog messages sent over UDP, according to RFC 5424 "The Syslog Protocol" and RFC 5426 "Transmission of syslog messages over UDP".

In addition, RemoteSyslogListener also supports the "old" BSD syslog protocol, as described in RFC 3164.

The RemoteSyslogListener is a subclass of Poco::SplitterChannel. Every received log message is sent to the channels registered with addChannel() or the "channel" property.

Poco::Message objects created by RemoteSyslogListener will have the following named parameters:

  • addr: IP address of the host/interface sending the message.
  • host: host name; only for "new" syslog messages.
  • app: application name; only for "new" syslog messages.


Direct Base Classes: Poco::SplitterChannel

All Base Classes: Poco::Channel, Poco::Configurable, Poco::RefCountedObject, Poco::SplitterChannel

Member Summary

Member Functions: close, enqueueMessage, getProperty, open, processMessage, registerChannel, setProperty

Inherited Functions: addChannel, close, count, duplicate, getProperty, log, open, referenceCount, release, removeChannel, setProperty




Creates the RemoteSyslogListener.


    Poco::UInt16 port

Creates the RemoteSyslogListener, listening on the given port number.


    Poco::UInt16 port,
    int threads

Creates the RemoteSyslogListener, listening on the given port number and using the number of threads for message processing.


~RemoteSyslogListener protected virtual


Destroys the RemoteSyslogListener.

Member Functions

close virtual

void close();

Stops the listener.


void enqueueMessage(
    const std::string & messageText,
    const Poco::Net::SocketAddress & senderAddress

Enqueues a single line of text containing a syslog message for asynchronous processing by a parser thread.

getProperty virtual

std::string getProperty(
    const std::string & name
) const;

Returns the value of the property with the given name.

open virtual

void open();

Starts the listener.


void processMessage(
    const std::string & messageText

Parses a single line of text containing a syslog message and sends it down the filter chain.

registerChannel static

static void registerChannel();

Registers the channel with the global LoggingFactory.

setProperty virtual

void setProperty(
    const std::string & name,
    const std::string & value

Sets the property with the given value.

The following properties are supported:

  • port: The UDP port number where to listen for UDP packets containing syslog messages. If 0 is specified, does not listen for UDP messages.
  • threads: The number of parser threads processing received syslog messages. Defaults to 1. A maximum of 16 threads is supported.


PROP_PORT static

static const std::string PROP_PORT;


static const std::string PROP_THREADS;