class Poco::Net::RemoteSyslogListener
Overview
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”. More…
#include <RemoteSyslogListener.h> class RemoteSyslogListener: public Poco::SplitterChannel { public: // fields static const std::string PROP_PORT; static const std::string PROP_THREADS; static const std::string LOG_PROP_APP; static const std::string LOG_PROP_HOST; // construction RemoteSyslogListener(); RemoteSyslogListener(Poco::UInt16 port); RemoteSyslogListener( Poco::UInt16 port, int threads ); // methods virtual void setProperty( const std::string& name, const std::string& value ); virtual std::string getProperty(const std::string& name) const; virtual void open(); virtual void close(); void processMessage(const std::string& messageText); void enqueueMessage( const std::string& messageText, const Poco::Net::SocketAddress& senderAddress ); static void registerChannel(); };
Inherited Members
public: // methods virtual void setProperty( const std::string& name, const std::string& value ) = 0; virtual std::string getProperty(const std::string& name) const = 0; void duplicate() const; void release() const; int referenceCount() const; virtual void open(); virtual void close(); virtual void log(const Message& msg) = 0; virtual void setProperty( const std::string& name, const std::string& value ); virtual std::string getProperty(const std::string& name) const; void addChannel(Channel* pChannel); void removeChannel(Channel* pChannel); virtual void log(const Message& msg); virtual void setProperty( const std::string& name, const std::string& value ); virtual void close(); int count() const;
Detailed Documentation
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.
Construction
RemoteSyslogListener()
Creates the RemoteSyslogListener.
RemoteSyslogListener(Poco::UInt16 port)
Creates the RemoteSyslogListener, listening on the given port number.
RemoteSyslogListener( Poco::UInt16 port, int threads )
Creates the RemoteSyslogListener, listening on the given port number and using the number of threads for message processing.
Methods
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.
virtual std::string getProperty(const std::string& name) const
Returns the value of the property with the given name.
virtual void open()
Starts the listener.
virtual void close()
Stops 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.
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.
static void registerChannel()
Registers the channel with the global LoggingFactory.