/* * /// <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); } } }
/* * /// <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, EventID id) * { * log.WriteEntry(message, System.Diagnostics.EventLogEntryType.Information, (int)id); * //System.Diagnostics.EventLogEntryType. * * int j = 0; * Task[] tasks = new Task[Settings.SyslogServers.Count]; * * foreach (SyslogServerInfo serverInfo in Settings.SyslogServers) * { * if (serverInfo.IsValid) * { * Syslog syslog = new Syslog(serverInfo.Hostname, serverInfo.Port, serverInfo.Protocol, serverInfo.RFC); * tasks[j] = Task.Factory.StartNew(() => syslog.SendMessage(message, id.ToString(), SyslogNet.Client.Severity.Informational)); * } * j++; * } * } * * /// <summary> * /// Writes the specified message to the event log as an error 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 WriteErrorEvent(string message, EventID id) * { * log.WriteEntry(message, System.Diagnostics.EventLogEntryType.Error, (int)id); * * int j = 0; * Task[] tasks = new Task[Settings.SyslogServers.Count]; * * foreach (SyslogServerInfo serverInfo in Settings.SyslogServers) * { * if (serverInfo.IsValid) * { * Syslog syslog = new Syslog(serverInfo.Hostname, serverInfo.Port, serverInfo.Protocol, serverInfo.RFC); * tasks[j] = Task.Factory.StartNew(() => syslog.SendMessage(message, id.ToString(), SyslogNet.Client.Severity.Error)); * } * j++; * } * } * * /// <summary> * /// Writes the specified message to the event log as a warning 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 WriteWarningEvent(string message, EventID id) * { * log.WriteEntry(message, System.Diagnostics.EventLogEntryType.Warning, (int)id); * * int j = 0; * Task[] tasks = new Task[Settings.SyslogServers.Count]; * * foreach (SyslogServerInfo serverInfo in Settings.SyslogServers) * { * if (serverInfo.IsValid) * { * Syslog syslog = new Syslog(serverInfo.Hostname, serverInfo.Port, serverInfo.Protocol, serverInfo.RFC); * tasks[j] = Task.Factory.StartNew(() => syslog.SendMessage(message, id.ToString(), SyslogNet.Client.Severity.Warning)); * } * j++; * } * } */ /// <summary> /// Writes an event to the log. /// </summary> /// <param name="message"> /// The message to write to the log. /// </param> /// <param name="id"> /// An ID for the type of event being logged. /// </param> /// <param name="entryType"> /// The severity of the message being logged (information, warning, etc.). /// </param> public static void WriteEvent(string message, EventID id, System.Diagnostics.EventLogEntryType entryType) { log.WriteEntry(message, entryType, (int)id); int j = 0; Task[] tasks = new Task[Settings.SyslogServers.Count]; // Determine the syslog severity for this event, based on the event log entry type. SyslogNet.Client.Severity severity = SyslogNet.Client.Severity.Informational; switch (entryType) { case System.Diagnostics.EventLogEntryType.Error: severity = SyslogNet.Client.Severity.Error; break; case System.Diagnostics.EventLogEntryType.Warning: severity = SyslogNet.Client.Severity.Warning; break; case System.Diagnostics.EventLogEntryType.FailureAudit: severity = SyslogNet.Client.Severity.Alert; break; case System.Diagnostics.EventLogEntryType.SuccessAudit: severity = SyslogNet.Client.Severity.Notice; break; default: break; } foreach (SyslogServerInfo serverInfo in Settings.SyslogServers) { if (serverInfo.IsValid) { Syslog syslog = new Syslog(serverInfo.Hostname, serverInfo.Port, serverInfo.Protocol, serverInfo.RFC); tasks[j] = Task.Factory.StartNew(() => syslog.SendMessage(message, id.ToString(), severity)); } j++; } }