Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
 public void Send(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer)
 {
     foreach (SyslogMessage message in messages)
     {
         Send(message, serializer);
     }
 }
Ejemplo n.º 3
0
 public async Task SendAsync(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer)
 {
     foreach (var message in messages)
     {
         await SendAsync(message, serializer);
     }
 }
Ejemplo n.º 4
0
        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));
            }
        }
Ejemplo n.º 5
0
        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();
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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();
            }
        }
Ejemplo n.º 8
0
		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);
				}
			}
		}
Ejemplo n.º 9
0
        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);
                }
            }
        }
Ejemplo n.º 11
0
		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);
		}
Ejemplo n.º 12
0
		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();
		}
Ejemplo n.º 13
0
 public void Send(IEnumerable<SyslogMessage> messages, ISyslogMessageSerializer serializer)
 {
     foreach(SyslogMessage message in messages)
     {
         Send(message, serializer);
     }
 }
        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);
        }
Ejemplo n.º 15
0
        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;
        }
Ejemplo n.º 17
0
        public void Send(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer)
        {
            foreach (SyslogMessage message in messages)
            {
                Send(message, serializer, false);
            }

            if (!(transportStream is NetworkStream))
            {
                transportStream.Flush();
            }
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 20
0
		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);
			}
		}
Ejemplo n.º 21
0
        /// <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;
        }
Ejemplo n.º 22
0
 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);
     }
 }
Ejemplo n.º 23
0
        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);
            }
        }
Ejemplo n.º 24
0
        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
            }
        }
Ejemplo n.º 25
0
        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();
            }
        }
Ejemplo n.º 26
0
        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();
        }
Ejemplo n.º 27
0
        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);
            }
        }
Ejemplo n.º 28
0
		public void Send(SyslogMessage message, ISyslogMessageSerializer serializer)
		{
			Send(message, serializer, true);
		}
Ejemplo n.º 29
0
 public Task SendAsync(SyslogMessage message, ISyslogMessageSerializer serializer)
 {
     return(SendAsync(message, serializer, default(CancellationToken)));
 }
Ejemplo n.º 30
0
 public Task SendAsync(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer)
 {
     throw new NotImplementedException();
 }
Ejemplo n.º 31
0
 /// <summary>
 /// Contructor
 /// </summary>
 /// <param name="syslogMessageSerializer">ISyslogMessageSerializer interface</param>
 public CefMessageSerializer(ISyslogMessageSerializer syslogMessageSerializer)
 {
     _syslogMessageSerializer = syslogMessageSerializer;
 }
Ejemplo n.º 32
0
		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);
 }
Ejemplo n.º 34
0
        public Task SendAsync(SyslogMessage message, ISyslogMessageSerializer serializer)
        {
            var datagramBytes = serializer.Serialize(message);

            return(udpClient.SendAsync(datagramBytes, datagramBytes.Length));
        }
Ejemplo n.º 35
0
        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();
            }
        }
Ejemplo n.º 36
0
 public Task SendAsync(IEnumerable <SyslogMessage> messages, ISyslogMessageSerializer serializer)
 {
     return(SendAsync(messages, serializer, default(CancellationToken)));
 }
Ejemplo n.º 37
0
 public void Send(SyslogMessage message, ISyslogMessageSerializer serializer)
 {
     Send(message, serializer, true);
 }
Ejemplo n.º 38
0
		protected ISyslogMessageSerializer EnsureValidSerializer(ISyslogMessageSerializer serializer) {
			return serializer ?? defaultSerializer;
		}
Ejemplo n.º 39
0
 public void Send(SyslogMessage message, ISyslogMessageSerializer serializer)
 {
     byte[] datagramBytes = serializer.Serialize(message);
     udpClient.Send(datagramBytes, datagramBytes.Length);
 }
Ejemplo n.º 40
0
		public void Send(SysLog.Message message, ISyslogMessageSerializer serializer)
		{
			byte[] datagramBytes = serializer.Serialize(message);
			udpClient.Send(datagramBytes, datagramBytes.Length);
		}