void ILogCollector.SubmitMessage(SyslogMessage message) { using (StreamWriter sw = new StreamWriter(File.Open(_absoluteFilePath, FileMode.Append, FileAccess.Write, FileShare.Write))) { sw.WriteLine(message.ToRfc5424String()); } }
public void SubmitMessage(SyslogMessage message) { if (_disposed) { throw new ObjectDisposedException(GetType().FullName); } if (RemoteEndPoint == null) { if (_port == 0) { _port = InChannels.SyslogUdpReceiver.DEFAULT_PORT; } if (_remoteAddr == null) { throw new InvalidOperationException("Logger is not configured"); } lock (this) { if (RemoteEndPoint == null) { RemoteEndPoint = new IPEndPoint(_remoteAddr, _port); } } } if (_client == null) { lock (this) { if (_client == null) { _client = new UdpClient(RemoteEndPoint.AddressFamily); } } } byte[] payload = Encoding.UTF8.GetBytes(message.ToRfc5424String()); try { _result = _client.BeginSend(payload, payload.Length, RemoteEndPoint, null, null); } catch (IOException) { } catch (SocketException) { } catch (Exception ex) { throw new LogbusException("Unable to send Syslog message", ex); } }
void ILayout.Format(TextWriter writer, LoggingEvent loggingEvent) { SyslogSeverity severity; int level = loggingEvent.Level.Value; if (level <= Level.Debug.Value) { severity = SyslogSeverity.Debug; } else if (level <= Level.Info.Value) { severity = SyslogSeverity.Info; } else if (level <= Level.Notice.Value) { severity = SyslogSeverity.Notice; } else if (level <= Level.Warn.Value) { severity = SyslogSeverity.Warning; } else if (level <= Level.Error.Value) { severity = SyslogSeverity.Error; } else if (level <= Level.Critical.Value) { severity = SyslogSeverity.Critical; } else if (level <= Level.Alert.Value) { severity = SyslogSeverity.Alert; } else { severity = SyslogSeverity.Emergency; } SyslogMessage message = new SyslogMessage(Dns.GetHostName(), SyslogFacility.User, severity, loggingEvent.MessageObject.ToString()) { MessageId = "log4net", ProcessID = Process.GetCurrentProcess().Id.ToString(CultureInfo.InvariantCulture), ApplicationName = Process.GetCurrentProcess().ProcessName }; writer.WriteLine(message.ToRfc5424String()); }
public void TestMulticast() { AutoResetEvent complete = new AutoResetEvent(false); using (SyslogMulticastReceiver target = new SyslogMulticastReceiver()) { target.Log = new SimpleLogImpl(new NullCollector()); target.MulticastGroup = new IPAddress(new byte[] { 236, 13, 2, 86 }); target.Start(); target.MessageReceived += delegate(object sender, SyslogMessageEventArgs e) { if (e.Message.MessageId == "UNIT_TEST") { complete.Set(); } }; target.ParseError += delegate { Assert.Fail("Error decoding Syslog message"); }; target.Error += delegate { Assert.Fail("Error in test object"); }; SyslogMessage msg = new SyslogMessage("localhost", SyslogFacility.Local0, SyslogSeverity.Notice, "Hello") { MessageId = "UNIT_TEST" }; byte[] payload = Encoding.UTF8.GetBytes(msg.ToRfc5424String()); using (UdpClient client = new UdpClient { MulticastLoopback = false }) { client.Connect(target.MulticastGroup, target.Port); client.Send(payload, payload.Length); } if (!complete.WaitOne(3000)) { Assert.Fail("Multicast listener didn't receive the Syslog datagram"); } } }
public void SubmitMessage(SyslogMessage message) { Tc.WriteLine(message.ToRfc5424String()); }