public void StartLogging() { lock (this) { if (_server != null) return; try { // New server _server = new SyslogServer(SyslogServer.DefaultAddress, _port); // Register for events _server.SyslogMessageReceived += _eventDelegate; // Start listening _server.Connect(); } catch (Exception) { if (_server != null) { _server.Close(); _server.SyslogMessageReceived -= _eventDelegate; _server = null; } throw; } } }
public void StopLogging() { lock (this) { try { if (_server == null) return; // Unregister _server.SyslogMessageReceived -= _eventDelegate; // Shut down _server.Close(); _server = null; } catch (Exception) { if (_server != null) { _server.Close(); _server = null; } throw; } } }
private void Connect() { if (_server != null) return; try { IPAddress ip = _specificIP; if (ip == null) { ip = SyslogServer.DefaultAddress; } _server = new SyslogServer(ip, _port); _server.SyslogMessageReceived += new SyslogServer.SyslogMessageDelegate(OnSyslogMessage); _server.Connect(); } catch (Exception) { if (_server != null) { _server.Close(); _server = null; } throw; } }