/// <summary> /// Causes the plugin to report its status or errors to all <see cref="ILogger"/>, /// after requesting permission from the <see cref="IPluginHost"/> hosting it. If /// no host is hosting the plugin the report is performed anyway. /// </summary> protected void Report() { try { if (host != null) { if (!host.PermitReport(this)) { return; } } lock (events.SyncRoot) { while (events.Count > 0) { EventLoggerEntry entry = (EventLoggerEntry)events.Dequeue(); foreach (ILogger log in loggers) { log.LogEventEntry(entry); } } } } catch {} }
/// <summary> /// Enqueues an <see cref="EventLoggerEntry"/> object in the <see cref="QueueEventLogger"/>. /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to be logged.</param> public void Enqueue(EventLoggerEntry entry) { if (events.Count == maxSize) { events.Dequeue(); } events.Enqueue(entry); }
/// <summary> /// Enqueues an <see cref="EventLoggerEntry"/> to the internal event queue. /// </summary> /// <param name="entry">The entry to enqueue.</param> protected void AddToReportQueue(EventLoggerEntry entry) { try { if (events != null) { lock (events.SyncRoot) { events.Enqueue(entry); } } } catch {} }
/// <summary> /// Creates a log according to the type of the entry's event /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to log.</param> public void LogEventEntry(EventLoggerEntry entry) { try { lock (events) { if (events.Count > maxSize) { events.Dequeue(); } events.Enqueue(entry); if (rememberLastEntry) { lastMessage = entry.EventMessage; } } } catch {} }
/// <summary> /// Creates a system log entry according to the type of the entry's event /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to log.</param> public void LogEventEntry(EventLoggerEntry entry) { try { //Assure thread safety mutex.WaitOne(); //Assign the new value to the LastEntry property if (rememberLastEntry) { lastMessage = entry.EventMessage; } if (eventLog != null) { //Write an entry with this source if (entry.EventType == CWLoggerEntryType.Info) { eventLog.WriteEntry(entry.EventDate.ToString("r") + " " + entry.EventMessage, EventLogEntryType.Information); } if (entry.EventType == CWLoggerEntryType.Warning) { eventLog.WriteEntry(entry.EventDate.ToString("r") + " " + entry.EventMessage, EventLogEntryType.Warning); } if (entry.EventType == CWLoggerEntryType.Error) { eventLog.WriteEntry(entry.EventDate.ToString("r") + " " + entry.EventMessage, EventLogEntryType.Error); } } } catch { //An exception might occur because either the EventLog is not //available (Win95/98/Me) or the Event Log Service is disabled //or stopped or the Application Event Log could be full. In this //case the application could append messages to a custom XML File. } finally { mutex.ReleaseMutex(); } }
/// <summary> /// Creates a Log Entry in the log file according to the type of the entry's event. /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to log.</param> public void LogEventEntry(EventLoggerEntry entry) { try { mutex.WaitOne(); if (eventSourceName == String.Empty) { lastMessage = "[" + entry.EventDate.ToString(dateFormat) + "][" + entry.EventType.ToString().ToUpper() + "] " + entry.EventMessage; } else { lastMessage = "[" + entry.EventDate.ToString(dateFormat) + "][" + entry.EventType.ToString().ToUpper() + "] " + eventSourceName + ": " + entry.EventMessage; } stream.WriteLine(lastMessage); stream.Flush(); } catch {} finally { mutex.ReleaseMutex(); } }
/// <summary> /// Enqueues an <see cref="EventLoggerEntry"/> to the internal event queue. /// </summary> /// <param name="entry">The entry to enqueue.</param> protected void AddToReportQueue(EventLoggerEntry entry) { try { if(events!=null) { lock(events.SyncRoot) { events.Enqueue(entry); } } } catch {} }
/// <summary> /// Creates a Log Entry in the log according to the type of the entry's event. /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to log.</param> public void LogEventEntry(EventLoggerEntry entry) { try { mutex.WaitOne(); if(eventSourceName == String.Empty) { lastMessage = "[" + entry.EventDate.ToString() + "][" + entry.EventType.ToString().ToUpper() +"] " + entry.EventMessage; } else { lastMessage = "[" + entry.EventDate.ToString() + "][" + entry.EventType.ToString().ToUpper() +"] " + eventSourceName + ": " + entry.EventMessage; } if(this.InvokeRequired) { this.BeginInvoke(new LogDelegate(this.Log), new object[]{lastMessage, entry.EventType}); } else { Log(lastMessage, entry.EventType); } } catch {} finally { mutex.ReleaseMutex(); } }
/// <summary> /// Creates a system log entry according to the type of the entry's event /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to log.</param> public void LogEventEntry(EventLoggerEntry entry) { try { //Assure thread safety mutex.WaitOne(); //Assign the new value to the LastEntry property if(rememberLastEntry) { lastMessage=entry.EventMessage; } if(eventLog!=null) { //Write an entry with this source if(entry.EventType == CWLoggerEntryType.Info) { eventLog.WriteEntry(entry.EventDate.ToString("r") + " " + entry.EventMessage,EventLogEntryType.Information); } if(entry.EventType == CWLoggerEntryType.Warning) { eventLog.WriteEntry(entry.EventDate.ToString("r") + " " + entry.EventMessage,EventLogEntryType.Warning); } if(entry.EventType == CWLoggerEntryType.Error) { eventLog.WriteEntry(entry.EventDate.ToString("r") + " " + entry.EventMessage,EventLogEntryType.Error); } } } catch { //An exception might occur because either the EventLog is not //available (Win95/98/Me) or the Event Log Service is disabled //or stopped or the Application Event Log could be full. In this //case the application could append messages to a custom XML File. } finally { mutex.ReleaseMutex(); } }
/// <summary> /// Creates a log according to the type of the entry's event /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to log.</param> public void LogEventEntry(EventLoggerEntry entry) { try { lock(events) { if(events.Count > maxSize) { events.Dequeue(); } events.Enqueue(entry); if(rememberLastEntry) { lastMessage = entry.EventMessage; } } } catch {} }
/// <summary> /// Enqueues an <see cref="EventLoggerEntry"/> object in the <see cref="QueueEventLogger"/>. /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to be logged.</param> public void Enqueue(EventLoggerEntry entry) { if(events.Count == maxSize) { events.Dequeue(); } events.Enqueue(entry); }
/// <summary> /// Creates a Log Entry in the log file according to the type of the entry's event. /// </summary> /// <param name="entry">The <see cref="EventLoggerEntry"/> to log.</param> public void LogEventEntry(EventLoggerEntry entry) { try { mutex.WaitOne(); if(eventSourceName==String.Empty) { lastMessage="[" + entry.EventDate.ToString(dateFormat) + "]["+ entry.EventType.ToString().ToUpper() +"] " + entry.EventMessage; } else { lastMessage="[" + entry.EventDate.ToString(dateFormat) + "]["+ entry.EventType.ToString().ToUpper() +"] " + eventSourceName + ": " + entry.EventMessage; } stream.WriteLine(lastMessage); stream.Flush(); } catch {} finally { mutex.ReleaseMutex(); } }