This sample launches a Syslog server.

The sample is a console utility that launches Syslog server on its default port (514) listening for UDP or TCP connections.

If a PFX file (and optionally its password) is specified, it also enables TLS connections on its default port (6514).


> SyslogServer
> SyslogServer "c:\data\server.pfx"
> SyslogServer "c:\data\server.pfx" "TopSecret"


// create Syslog server instance
var server = new SyslogServer();

// bind desired endpoints
server.Bind(SyslogServer.DefaultPort, SyslogTransportProtocol.Udp);
server.Bind(SyslogServer.DefaultPort, SyslogTransportProtocol.Tcp);

// register an event handler for received messages
server.MessageReceived += (s, e) =>
    // insert received message to a collection for further processing

// register an event handler for errors
server.ErrorOccurred += (s, e) =>
    Console.WriteLine("Error occurred ({0}): {1}", e.RemoteEndPoint, e.Error);

// start the server

The sample uses System.Collections.Concurrent.BlockingCollection (from .NET 4.0) to safely process received messages in a background thread.


private void ConsumeSyslogMessages()
    // process received messages
    foreach (var message in Queue.GetConsumingEnumerable())
        Console.WriteLine("Received message: {0}", message.Text);