Centreon_EventLog_2_Syslog.SyslogServer.SendEventByUDP C# (CSharp) 메소드

SendEventByUDP() 개인적인 메소드

Send event to syslog server
private SendEventByUDP ( String message, String eventLogName, System.Diagnostics.EventLogEntry eventLogEntry, Filter filter ) : System.Boolean
message String Message to send
eventLogName String
eventLogEntry System.Diagnostics.EventLogEntry Event to transfert to syslog server
filter Filter Filter with Syslog facility and level
리턴 System.Boolean
        private Boolean SendEventByUDP(String message, String eventLogName, EventLogEntry eventLogEntry, Filter filter)
        {
            IPAddress[] ServersAddress;

            // Create syslog tag and remove syslog message accents
            Int32 pri = (int)Facility[filter.SyslogFacility.ToLower()] * 8 + (int)Level[filter.SyslogLevel.ToLower()];
            String body = "<" + pri + ">" + eventLogEntry.MachineName + " " + message;

            // Convert final message in bytes
            byte[] rawMsg = Encoding.Default.GetBytes(body);

            try
            {
                ServersAddress = Dns.GetHostAddresses(this._ServerAddress);

                String temp = ServersAddress.GetValue(0).ToString();

                for (int i = 0; i < ServersAddress.Length; i++)
                {
                    UdpClient udp = new UdpClient(ServersAddress.GetValue(i).ToString(), this._ServerPort);

                    udp.Send(rawMsg, rawMsg.Length);
                    this._Debug.Write("Syslog Server", "Event send to: " + ServersAddress.GetValue(i).ToString() + " with message: " + message, DateTime.Now, 2);
                    udp.Close();
                    udp = null;
                }
            }
            catch (SocketException e)
            {
                this._Debug.Write("Syslog Server", "SocketException caught because: " + e.Message, DateTime.Now, 1);
                return false;
            }
            catch (ArgumentNullException e)
            {
                this._Debug.Write("Syslog Server", "ArgumentNullException caught because: " + e.Message, DateTime.Now, 1);
                return false;
            }
            catch (ArgumentOutOfRangeException e)
            {
                this._Debug.Write("Syslog Server", "ArgumentOutOfRangeException caught because: " + e.Message, DateTime.Now, 1);
                return false;
            }
            catch (ObjectDisposedException e)
            {
                this._Debug.Write("Syslog Server", "ObjectDisposedException caught because: " + e.Message, DateTime.Now, 1);
                return false;
            }
            catch (InvalidOperationException e)
            {
                this._Debug.Write("Syslog Server", "InvalidOperationException caught because: " + e.Message, DateTime.Now, 1);
                return false;
            }

            return true;
        }