/// <summary> /// Send event to Syslog /// </summary> /// <returns></returns> public bool SendLog(string _server, string _port, string msg) { Options options = new Options(); options.SyslogServerHostname = _server; options.SyslogServerPort = Convert.ToInt32(_port); options.Message = msg; options.NetworkProtocol = "tcp"; try { ISyslogMessageSerializer serializer = (ISyslogMessageSerializer) new SyslogRfc5424MessageSerializer(); ISyslogMessageSender sender = (ISyslogMessageSender) new SyslogTcpSender(options.SyslogServerHostname, options.SyslogServerPort, true); SyslogMessage msg1 = CreateSyslogMessage(options); File.AppendAllText("C:\\Jakkl_log.txt", msg1.Facility.ToString() + msg1.Severity.ToString()); sender.Send(msg1, serializer); return(true); } catch (Exception e) { Debug.WriteLine("ArgumentNullException: {0}", e); File.AppendAllText("C:\\Jakkl_log.txt", e.Message); return(false); } }
public void Send(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer) { foreach (SyslogMessage message in messages) { Send(message, serializer); } }
public async Task SendAsync(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer) { foreach (var message in messages) { await SendAsync(message, serializer); } }
public static void OpenSysLog(SysLog.Facility facility, string applicationName, string serverAddr, int serverPort = 514, bool useRfc5424 = false) { try { syslogFacility = facility; syslogMachineName = Environment.MachineName; if (String.IsNullOrEmpty(applicationName)) { syslogApplicationName = System.AppDomain.CurrentDomain.FriendlyName; } else { syslogApplicationName = applicationName; } syslogApplicationName += String.Format("[{0}]", Process.GetCurrentProcess().Id); if (useRfc5424) { syslogSerializer = new SyslogRfc5424MessageSerializer(); } else { syslogSerializer = new SyslogRfc3164MessageSerializer(); } syslogSender = new SyslogUdpSender(serverAddr, serverPort); } catch (Exception e) { syslogSender = null; syslogSerializer = null; Log(Level.Warning, String.Format("Failed to create Syslog sender ({0})", e.Message)); } }
protected void Send(SyslogMessage message, ISyslogMessageSerializer serializer, bool flush = true) { if (transportStream == null) { throw new IOException("No transport stream exists"); } var datagramBytes = serializer.Serialize(message); if (messageTransfer.Equals(MessageTransfer.OctetCounting)) { byte[] messageLength = Encoding.ASCII.GetBytes(datagramBytes.Length.ToString()); transportStream.Write(messageLength, 0, messageLength.Length); transportStream.WriteByte(32); // Space } transportStream.Write(datagramBytes, 0, datagramBytes.Length); if (messageTransfer.Equals(MessageTransfer.NonTransparentFraming)) { transportStream.WriteByte(trailer); // LF } if (flush && !(transportStream is NetworkStream)) { transportStream.Flush(); } }
public static void Main(string[] args) { try { var options = new Options(); if (new CommandLineParser().ParseArguments(args, options)) { // string exceptionMessage = CreateExceptionMessageLevel1(); ISyslogMessageSerializer serializer = options.SyslogVersion == "5424" ? (ISyslogMessageSerializer) new SyslogRfc5424MessageSerializer() : new SyslogRfc3164MessageSerializer(); ISyslogMessageSender sender = options.NetworkProtocol == "tcp" ? (ISyslogMessageSender) new SyslogEncryptedTcpSender(options.SyslogServerHostname, options.SyslogServerPort) : new SyslogUdpSender(options.SyslogServerHostname, options.SyslogServerPort); SyslogMessage msg1 = CreateSyslogMessage(options); sender.Send(msg1, serializer); Console.WriteLine("Sent message 1"); Thread.Sleep(5000); SyslogMessage msg2 = CreateSyslogMessage(options); sender.Send(msg2, serializer); Console.WriteLine("Sent message 2"); } } catch (Exception ex) { Console.WriteLine("ERROR: " + ex); } }
protected void Send(SyslogMessage message, ISyslogMessageSerializer serializer, bool flush = true) { if (transportStream == null) { throw new System.IO.IOException("No transport stream exists"); } using (System.IO.MemoryStream memoryStream = new System.IO.MemoryStream()) { byte[] datagramBytes = serializer.Serialize(message); if (messageTransfer.Equals(MessageTransfer.OctetCounting)) { byte[] messageLength = System.Text.Encoding.ASCII.GetBytes(datagramBytes.Length.ToString(System.Globalization.CultureInfo.InvariantCulture)); memoryStream.Write(messageLength, 0, messageLength.Length); memoryStream.WriteByte(32); // Space } memoryStream.Write(datagramBytes, 0, datagramBytes.Length); if (messageTransfer.Equals(MessageTransfer.NonTransparentFraming)) { memoryStream.WriteByte(trailer); // LF } transportStream.Write(memoryStream.GetBuffer(), 0, (int)memoryStream.Length); } if (flush && !(transportStream is System.Net.Sockets.NetworkStream)) { transportStream.Flush(); } }
public void Send(IEnumerable<SyslogMessage> messages, ISyslogMessageSerializer serializer) { // Slightly tricky, since we need to get the appName out of the first message before // looping, so we can't just use foreach(). Using an explicit iterator works, though. IntPtr ident = IntPtr.Zero; using (IEnumerator<SyslogMessage> iterator = messages.GetEnumerator()) { try { if (iterator.MoveNext()) { SyslogMessage message = iterator.Current; ident = MarshalIdent(message.AppName); openlog(ident, (int)SyslogOptions.LogPid, CalculatePriorityValue(message.Facility, 0)); SendToSyslog(message, serializer); } while (iterator.MoveNext()) { SendToSyslog(iterator.Current, serializer); } } finally { closelog(); DisposeOfIdent(ident); } } }
static void SendMessage(EventRecordWrittenEventArgs e) { lock (monitor) { try { String message = e.EventRecord.ToXml(); ISyslogMessageSerializer serializer = (ISyslogMessageSerializer) new SyslogRfc5424MessageSerializer(); //: options.SyslogVersion == "3164" // ? (ISyslogMessageSerializer)new SyslogRfc3164MessageSerializer() // : (ISyslogMessageSerializer)new SyslogLocalMessageSerializer(); SyslogMessage msg1 = CreateSyslogMessage(e); // System.Diagnostics.Trace.WriteLine(e.EventRecord.ToXml()); Console.WriteLine("New Event " + e.EventRecord.Id + "\n"); //msg1= if (client == null) { client = (ISyslogMessageSender) new SyslogTcpSender(syslogServerHostname, port); } client.Send(msg1, serializer); } catch (Exception ex) { // monitor = "0"; Console.WriteLine("Eroare 10 " + ex.Message); } } }
public void Send(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer) { // Slightly tricky, since we need to get the appName out of the first message before // looping, so we can't just use foreach(). Using an explicit iterator works, though. IntPtr ident = IntPtr.Zero; using (IEnumerator <SyslogMessage> iterator = messages.GetEnumerator()) { try { if (iterator.MoveNext()) { SyslogMessage message = iterator.Current; ident = MarshalIdent(message.AppName); openlog(ident, (int)SyslogOptions.LogPid, CalculatePriorityValue(message.Facility, 0)); SendToSyslog(message, serializer); } while (iterator.MoveNext()) { SendToSyslog(iterator.Current, serializer); } } finally { closelog(); DisposeOfIdent(ident); } } }
protected void SendToSyslog(SyslogMessage message, ISyslogMessageSerializer serializer) { int priority = CalculatePriorityValue(message.Facility, message.Severity); serializer = EnsureValidSerializer(serializer); byte[] data = serializer.Serialize(message); syslog(priority, "%s", data); }
protected void Send(SyslogMessage message, ISyslogMessageSerializer serializer, bool flush = true) { if(transportStream == null) { throw new IOException("No transport stream exists"); } var datagramBytes = serializer.Serialize(message); if (messageTransfer.Equals(MessageTransfer.OctetCounting)) { byte[] messageLength = Encoding.ASCII.GetBytes(datagramBytes.Length.ToString()); transportStream.Write(messageLength, 0, messageLength.Length); transportStream.WriteByte(32); // Space } transportStream.Write(datagramBytes, 0, datagramBytes.Length); if (messageTransfer.Equals(MessageTransfer.NonTransparentFraming)) { transportStream.WriteByte(trailer); // LF } if (flush && !(transportStream is NetworkStream)) transportStream.Flush(); }
public void Send(IEnumerable<SyslogMessage> messages, ISyslogMessageSerializer serializer) { foreach(SyslogMessage message in messages) { Send(message, serializer); } }
public void Send(IEnumerable<SyslogMessage> messages, ISyslogMessageSerializer serializer) { foreach (SyslogMessage message in messages) { Send(message, serializer, false); } if (!(transportStream is NetworkStream)) transportStream.Flush(); }
/// <summary> /// Initializes a new instance of the <see cref="SyslogAuditForwarder"/> class. /// Creates a new instance of the SyslogAuditForwarder /// </summary> /// <param name="config">The </param> public SyslogAuditForwarder(IExtensionConfiguration config) { _config = config ?? throw new ArgumentNullException(nameof(config), "A constructed configuration must be provided."); if (_config.Host == null) { _killswitch = true; return; } _serializer = CreateSerializer(); _mapper = config.AuditEventMap; }
public void Send(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer) { foreach (SyslogMessage message in messages) { Send(message, serializer, false); } if (!(transportStream is NetworkStream)) { transportStream.Flush(); } }
public async Task SendAsync(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer, CancellationToken token) { foreach (var message in messages) { await SendAsync(message, serializer, token); } if (!(transportStream is NetworkStream)) { await transportStream.FlushAsync(token); } }
public static byte[] Serialize(this ISyslogMessageSerializer serializer, SyslogMessage message) { byte[] datagramBytes; using (var stream = new MemoryStream()) { serializer.Serialize(message, stream); stream.Position = 0; datagramBytes = new byte[stream.Length]; stream.Read(datagramBytes, 0, (int)stream.Length); } return(datagramBytes); }
public void Send(SyslogMessage message, ISyslogMessageSerializer serializer) { IntPtr ident = IntPtr.Zero; try { ident = MarshalIdent(message.AppName); openlog(ident, (int)SyslogOptions.LogPid, CalculatePriorityValue(message.Facility, 0)); SendToSyslog(message, serializer); } finally { closelog(); DisposeOfIdent(ident); } }
/// <summary> /// Initializes a new instance of the <see cref="SyslogStreamWriter" /> class. /// </summary> /// <param name="streamProvider">The stream provider.</param> /// <param name="serializer">The serializer.</param> /// <exception cref="System.ArgumentNullException">serializer /// or /// streamProvider</exception> public SyslogStreamWriter(IStreamProvider streamProvider, ISyslogMessageSerializer serializer) { if (streamProvider == null) { throw new ArgumentNullException(nameof(streamProvider)); } if (serializer == null) { throw new ArgumentNullException(nameof(serializer)); } _streamProvider = streamProvider; _serializer = serializer; }
public void Send(SyslogMessage message, ISyslogMessageSerializer serializer) { System.IntPtr ident = System.IntPtr.Zero; try { ident = MarshalIdent(message.AppName); openlog(ident, (int)SyslogOptions.LogPid, CalculatePriorityValue(message.Facility, 0)); SendToSyslog(message, serializer); } finally { closelog(); DisposeOfIdent(ident); } }
public async Task SendAsync(SyslogMessage message, ISyslogMessageSerializer serializer, CancellationToken token) { if (transportStream == null) { throw new IOException("No transport stream exists"); } using (var memoryStream = new MemoryStream()) { SerializeMessageToStream(message, serializer, memoryStream); await transportStream.WriteAsync(memoryStream.GetBuffer(), 0, (int)memoryStream.Length, token); } if (!(transportStream is NetworkStream)) { await transportStream.FlushAsync(token); } }
private void SerializeMessageToStream(SyslogMessage message, ISyslogMessageSerializer serializer, Stream memoryStream) { var datagramBytes = serializer.Serialize(message); if (messageTransfer.Equals(MessageTransfer.OctetCounting)) { var messageLength = Encoding.ASCII.GetBytes(datagramBytes.Length.ToString()); memoryStream.Write(messageLength, 0, messageLength.Length); memoryStream.WriteByte(32); // Space } memoryStream.Write(datagramBytes, 0, datagramBytes.Length); if (messageTransfer.Equals(MessageTransfer.NonTransparentFraming)) { memoryStream.WriteByte(trailer); // LF } }
protected void Send(SyslogMessage message, ISyslogMessageSerializer serializer, bool flush = true) { if (transportStream == null) { throw new IOException("No transport stream exists"); } using (MemoryStream memoryStream = new MemoryStream()) { SerializeMessageToStream(message, serializer, memoryStream); transportStream.Write(memoryStream.GetBuffer(), 0, (int)memoryStream.Length); } if (flush && !(transportStream is NetworkStream)) { transportStream.Flush(); } }
public static void Main(string[] args) { try { Options options = null; Parser.Default.ParseArguments <Options>(args).WithParsed(_ => options = _); if (options != null) { // string exceptionMessage = CreateExceptionMessageLevel1(); ISyslogMessageSerializer serializer = options.SyslogVersion == "5424" ? (ISyslogMessageSerializer) new SyslogRfc5424MessageSerializer() : options.SyslogVersion == "3164" ? (ISyslogMessageSerializer) new SyslogRfc3164MessageSerializer() : (ISyslogMessageSerializer) new SyslogLocalMessageSerializer(); //ISyslogMessageSender sender = options.NetworkProtocol == "tcp" // ? (ISyslogMessageSender)new SyslogEncryptedTcpSender(options.SyslogServerHostname, options.SyslogServerPort, Timeout.Infinite, true) // : options.NetworkProtocol == "udp" // ? (ISyslogMessageSender)new SyslogUdpSender(options.SyslogServerHostname, options.SyslogServerPort) // : (ISyslogMessageSender)new SyslogLocalSender(); ISyslogMessageSender sender = new SyslogEncryptedTcpSender(options.SyslogServerHostname, options.SyslogServerPort, SecurityProtocolType.Tls12, new X509Certificate2Collection(new X509Certificate2(options.CertificatePath, options.CertificatePassword)), Timeout.Infinite, true); SyslogMessage msg1 = CreateSyslogMessage(options); sender.Send(msg1, serializer); Console.WriteLine("Sent message 1"); Thread.Sleep(5000); SyslogMessage msg2 = CreateSyslogMessage(options); sender.Send(msg2, serializer); Console.WriteLine("Sent message 2"); } } catch (Exception ex) { Console.WriteLine("ERROR: " + ex); } Console.ReadKey(); }
public static void Main(string[] args) { try { Options options = null; Parser.Default.ParseArguments <Options>(args).WithParsed(_ => options = _); if (options != null) { // string exceptionMessage = CreateExceptionMessageLevel1(); ISyslogMessageSerializer serializer = options.SyslogVersion == "5424" ? (ISyslogMessageSerializer) new SyslogRfc5424MessageSerializer() : options.SyslogVersion == "3164" ? (ISyslogMessageSerializer) new SyslogRfc3164MessageSerializer() : (ISyslogMessageSerializer) new SyslogLocalMessageSerializer(); ISyslogMessageSender sender = options.NetworkProtocol == "tcp" ? (ISyslogMessageSender) new SyslogEncryptedTcpSender(options.SyslogServerHostname, options.SyslogServerPort, SslProtocols.Tls12) : options.NetworkProtocol == "udp" ? (ISyslogMessageSender) new SyslogUdpSender(options.SyslogServerHostname, options.SyslogServerPort) : (ISyslogMessageSender) new SyslogLocalSender(); SyslogMessage msg1 = CreateSyslogMessage(options); sender.Send(msg1, serializer); Console.WriteLine("Sent message 1"); Thread.Sleep(5000); SyslogMessage msg2 = CreateSyslogMessage(options); sender.Send(msg2, serializer); Console.WriteLine("Sent message 2"); } } catch (Exception ex) { Console.WriteLine("ERROR: " + ex); } }
public void Send(SyslogMessage message, ISyslogMessageSerializer serializer) { Send(message, serializer, true); }
public Task SendAsync(SyslogMessage message, ISyslogMessageSerializer serializer) { return(SendAsync(message, serializer, default(CancellationToken))); }
public Task SendAsync(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer) { throw new NotImplementedException(); }
/// <summary> /// Contructor /// </summary> /// <param name="syslogMessageSerializer">ISyslogMessageSerializer interface</param> public CefMessageSerializer(ISyslogMessageSerializer syslogMessageSerializer) { _syslogMessageSerializer = syslogMessageSerializer; }
public static void OpenSysLog(SysLog.Facility facility, string applicationName, string ServerAddr, int ServerPort = 514, bool useRfc5424 = false) { try { syslogFacility = facility; syslogMachineName = Environment.MachineName; if (String.IsNullOrEmpty(applicationName)) syslogApplicationName = System.AppDomain.CurrentDomain.FriendlyName; else syslogApplicationName = applicationName; syslogApplicationName += String.Format("[{0}]", Process.GetCurrentProcess().Id); if (useRfc5424) syslogSerializer = new SyslogRfc5424MessageSerializer(); else syslogSerializer = new SyslogRfc3164MessageSerializer(); syslogSender = new SyslogUdpSender(ServerAddr, ServerPort); } catch { } }
protected ISyslogMessageSerializer EnsureValidSerializer(ISyslogMessageSerializer serializer) { return(serializer ?? defaultSerializer); }
public Task SendAsync(SyslogMessage message, ISyslogMessageSerializer serializer) { var datagramBytes = serializer.Serialize(message); return(udpClient.SendAsync(datagramBytes, datagramBytes.Length)); }
public void Send(System.Collections.Generic.IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer) { foreach (SyslogMessage message in messages) { Send(message, serializer, false); } if (!(transportStream is System.Net.Sockets.NetworkStream)) { transportStream.Flush(); } }
public Task SendAsync(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer) { return(SendAsync(messages, serializer, default(CancellationToken))); }
protected ISyslogMessageSerializer EnsureValidSerializer(ISyslogMessageSerializer serializer) { return serializer ?? defaultSerializer; }
public void Send(SyslogMessage message, ISyslogMessageSerializer serializer) { byte[] datagramBytes = serializer.Serialize(message); udpClient.Send(datagramBytes, datagramBytes.Length); }
public void Send(SysLog.Message message, ISyslogMessageSerializer serializer) { byte[] datagramBytes = serializer.Serialize(message); udpClient.Send(datagramBytes, datagramBytes.Length); }