Centreon_EventLog_2_Syslog.SyslogServer.SendEventByTCP C# (CSharp) Method

SendEventByTCP() private method

Send event to syslog server using TCP protocol
private SendEventByTCP ( 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
return System.Boolean
        private Boolean SendEventByTCP(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 month = eventLogEntry.TimeWritten.ToString("MMM", DateTimeFormatInfo.InvariantInfo);
            string day = eventLogEntry.TimeWritten.ToString("dd", DateTimeFormatInfo.InvariantInfo);
            if (Convert.ToInt32(day) < 10)
            {
                day = " " + Convert.ToInt32(day);
            }
            string date = month + " " + day + " " + eventLogEntry.TimeWritten.ToString("HH:mm:ss", DateTimeFormatInfo.InvariantInfo);

            String body = "<" + pri + ">" + date + " " + eventLogEntry.MachineName + " " + message + "\n";

            // 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++)
                {
                    //Try to send message by TCP
                    TcpClient tcp;
                    NetworkStream flux;
                    try
                    {
                        tcp = new TcpClient(ServersAddress.GetValue(i).ToString(), this._ServerPort);
                        if (tcp.Connected)
                        {
                            flux = tcp.GetStream();
                            if (flux.CanWrite)
                            {
                                flux.Write(rawMsg, 0, rawMsg.Length);

                                this._Debug.Write("Syslog Server", "Event send to: " + ServersAddress.GetValue(i).ToString() + " with message: " + message, DateTime.Now, 2);
                                flux.Close();
                                tcp.Close();
                                tcp = null;
                            }
                            else
                            {
                                SetMessageInBuffer(body);
                            }
                        }
                        else
                        {
                            SetMessageInBuffer(body);
                        }
                    }
                    catch (SocketException e)
                    {
                        SetMessageInBuffer(body);
                    }
                    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 (System.IO.IOException e)
                    {
                        SetMessageInBuffer(body);
                    }
                }
            }
            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;
        }