Class Poco::Net::RemoteSyslogListener (original) (raw)
Library: Net
Package: Logging
Header: Poco/Net/RemoteSyslogListener.h
Description
RemoteSyslogListener implements 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.
- structured-data: RFC 5424 structured data, or empty if not present.
Inheritance
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
Constructors
RemoteSyslogListener
RemoteSyslogListener
RemoteSyslogListener(
Poco::UInt16 port
);
RemoteSyslogListener
RemoteSyslogListener(
Poco::UInt16 port,
int threads
);
Creates the RemoteSyslogListener, listening on the given port number and using the number of threads for message processing.
RemoteSyslogListener
RemoteSyslogListener(
Poco::UInt16 port,
bool reusePort,
int threads
);
Creates the RemoteSyslogListener, listening on the given port number and using the number of threads for message processing.
If reusePort is true, the underlying UDP socket will bind with the reusePort flag set.
Destructor
~RemoteSyslogListener

Member Functions
close 
void close();
Stops the listener.
enqueueMessage
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 
std::string getProperty(
const std::string & name
) const;
Returns the value of the property with the given name.
open 
void open();
Starts the listener.
processMessage
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 void registerChannel();
setProperty 
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.
- reusePort: If set to true, allows multiple instances binding to the same port number.
- threads: The number of parser threads processing received syslog messages. Defaults to 1. A maximum of 16 threads is supported.
- buffer: The UDP socket receive buffer size in bytes. If not specified, the system default is used.
Variables
LOG_PROP_APP 
static const std::string LOG_PROP_APP;
LOG_PROP_FACILITY 
static const std::string LOG_PROP_FACILITY;
LOG_PROP_HOST 
static const std::string LOG_PROP_HOST;
LOG_PROP_STRUCTURED_DATA 
static const std::string LOG_PROP_STRUCTURED_DATA;
PROP_BUFFER 
static const std::string PROP_BUFFER;
PROP_PORT 
static const std::string PROP_PORT;
PROP_REUSE_PORT 
static const std::string PROP_REUSE_PORT;
PROP_THREADS 
static const std::string PROP_THREADS;