Пример #1
0
        }         // End Function AllowAnything

        public static void Main(string[] args)
        {
            MyStructuredData msd = new MyStructuredData();

            System.Collections.Generic.Dictionary <string, string> dict = SyslogNet.Client.LinqHelper.GetStringDictionary(msd);
            System.Console.WriteLine(dict);



            System.Reflection.MemberInfo[] tnP = SyslogNet.Client.LinqHelper.GetFieldsAndProperties(msd.GetType());
            SyslogNet.Client.Getter_t <MyStructuredData>[] gettrs = SyslogNet.Client.LinqHelper.GetGetters <MyStructuredData>();
            SyslogNet.Client.Setter_t <MyStructuredData>[] settrs = SyslogNet.Client.LinqHelper.GetSetters <MyStructuredData>();

            object o = gettrs[6](msd);

            System.Console.WriteLine(o);

            System.DateTime?dt = SyslogNet.Client.LinqHelper.ChangeType <System.DateTime?>(gettrs[5](msd));
            System.Console.WriteLine(dt);

            settrs[6](msd, dt);



            // System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AllowAnything);

            // SyslogNet.Client.SyslogOptions options = null;
            // delegate (SyslogNet.Client.SyslogOptions a) { options = a; }
            // CommandLine.Parser.Default.ParseArguments<Options>(args).WithParsed(opt => options = opt);
            // CommandLine.ParserResultExtensions.WithParsed(CommandLine.Parser.Default.ParseArguments<Options>(args), opt => options = opt);

            SyslogNet.Client.SyslogOptions options = new SyslogNet.Client.SyslogOptions();
            // options.SyslogVersion = SyslogNet.Client.SyslogVersions.Rfc3164;
            options.SyslogVersion   = SyslogNet.Client.SyslogVersions.Rfc5424;
            options.NetworkProtocol = SyslogNet.Client.NetworkProtocols.TCP;
            // options.NetworkProtocol = SyslogNet.Client.NetworkProtocols.UPD;
            // options.SyslogServerPort = 515; // Visual Syslog
            options.InferDefaultPort();

            System.Console.WriteLine(options);

            string logMessage = "Test message 112 äöüÄÖÜß 你好世界 Привет мир";

            // logMessage = "test123";

            SyslogNet.Client.SyslogMessage msg1 = CreateSyslogMessage(options, logMessage);
            msg1.Send(options);

            System.Console.WriteLine("Sent " + msg1.Message);



            System.Console.WriteLine(" --- Press any key to continue --- ");
            System.Console.ReadKey();
        } // End Sub Main
Пример #2
0
        /// <summary>
        /// Writes the specified message to the event log as an information event
        /// with the specified event ID.
        /// </summary>
        /// <param name="message">
        /// The message to be written to the log.
        /// </param>
        /// <param name="id">
        /// The event ID to use for the event being written.
        /// </param>
        public static void WriteInformationEvent(string message, int processId, string messageId)
        {
            // TODO: Maybe we want to pass the process name here, rather than the numeric ID.

            SyslogNet.Client.SyslogMessage syslogMessage = new SyslogNet.Client.SyslogMessage(
                System.DateTimeOffset.Now,
                SyslogNet.Client.Facility.UserLevelMessages,
                SyslogNet.Client.Severity.Informational,
                FullyQualifiedHostName,
                AppName,
                processId.ToString(),
                messageId,
                message);

            Sender.Send(syslogMessage, Serializer);
        }
Пример #3
0
        /*
         * /// <summary>
         * /// Writes the specified message to syslog as an information event.
         * /// </summary>
         * /// <param name="message">
         * /// The message to be written.
         * /// </param>
         * /// <param name="messageId">
         * /// Identifies the type of message being sent.
         * /// </param>
         * public void WriteInformationEvent(string message, string messageId)
         * {
         *  SendMessage(message, messageId, SyslogNet.Client.Severity.Informational);
         * }
         *
         * public void WriteWarningEvent(string message, string messageId)
         * {
         *  SendMessage(message, messageId, SyslogNet.Client.Severity.Warning);
         * }
         *
         * public void WriteErrorEvent(string message, string messageId)
         * {
         *  SendMessage(message, messageId, SyslogNet.Client.Severity.Error);
         * }
         */

        /// <summary>
        /// Sends the message to the syslog server.
        /// </summary>
        /// <param name="message">
        /// The text of the message to be sent.
        /// </param>
        /// <param name="messageId">
        /// The message identifier.
        /// </param>
        /// <param name="severity">
        /// The severity of the message.
        /// </param>
        public void SendMessage(string message, string messageId, SyslogNet.Client.Severity severity)
        {
            System.Net.IPHostEntry hostEntry = null;
            try
            {
                hostEntry = System.Net.Dns.GetHostEntry(hostname);
            }
            catch (System.Net.Sockets.SocketException)
            {
                hostEntry = null;
            }

            if (hostEntry == null)
            {
                // TODO: Cache these events.
            }
            else
            {
                SyslogNet.Client.SyslogMessage syslogMessage = new SyslogNet.Client.SyslogMessage(
                    System.DateTimeOffset.Now,
                    SyslogNet.Client.Facility.UserLevelMessages,
                    severity,
                    Settings.FullyQualifiedHostName,
                    AppName,
                    null,
                    messageId,
                    message);

                if (string.Compare(protocol, "TCP", true) == 0)
                {
                    if (HostIsAvailableViaTcp(5))
                    {
                        Sender.Send(syslogMessage, Serializer);
                    }
                    else
                    {
                        // TODO: Cache these events.
                    }
                }
                else if (string.Compare(protocol, "UDP", true) == 0)
                {
                    Sender.Send(syslogMessage, Serializer);
                }
            }
        }
Пример #4
0
        private SyslogNet.Client.SyslogMessage BuildSyslogMessage(LogEvent logEvent)
        {
            var formattedMessage = this.GetFormattedMessage(logEvent);
            var severity         = GetSyslogSeverity(logEvent.Level);

            DateTimeOffset dtOffset = new DateTimeOffset(DateTime.Now.ToUniversalTime());
            var            facility = SyslogNet.Client.Facility.LocalUse1;
            string         procId   = System.Diagnostics.Process.GetCurrentProcess().Id.ToString();
            string         msgId    = null;
            string         hostName = Dns.GetHostName();

            Dictionary <string, string> properties = new Dictionary <string, string>();

            foreach (var property in logEvent.Properties)
            {
                properties.Add(property.Key, property.Value.ToString());
            }
            SyslogNet.Client.StructuredDataElement sdElement = new SyslogNet.Client.StructuredDataElement("1", properties);

            SyslogNet.Client.SyslogMessage message = new SyslogNet.Client.SyslogMessage(dtOffset, facility, severity, hostName, this.AppName, procId, msgId, formattedMessage, sdElement);

            return(message);
        }