SyslogServer

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

Usage

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

C#

// 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
    Queue.Add(e.Message);
};

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

// start the server
server.Start();

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

C#

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