/// <summary> /// Get any events that may have occurred, check that there are events to return /// </summary> /// <param name="memoryAppender"></param> /// <returns></returns> public string GetEvents(MemoryAppenderWithEvents memoryAppender) { StringBuilder output = new StringBuilder(); // Get any events that may have occurred LoggingEvent[] events = memoryAppender.GetEvents(); // Check that there are events to return if (events != null && events.Length > 0) { // If there are events, we clear them from the logger, since we're done with them memoryAppender.Clear(); // Iterate through each event foreach (LoggingEvent ev in events) { // Construct the line we want to log //string line = ev.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss,fff") + " [" + ev.ThreadName + "] " + ev.Level + " " + ev.LoggerName + ": " + ev.RenderedMessage + "\r\n"; string line = ev.TimeStamp.ToString("yyyy-MM-dd HH:mm:ss") + "||" + ev.Level + "||" + ev.RenderedMessage; // Append to the StringBuilder output.Append(line); } } // Return the constructed output return(output.ToString()); }
/// <summary> /// Standard Constructor /// </summary> public LogWatcher() { // Get the memory appender memoryAppender = (MemoryAppenderWithEvents)Array.Find(LogManager.GetRepository().GetAppenders(), GetMemoryAppender); var repos = LogManager.GetRepository().GetAppenders(); // Read in the log content this.logContent = GetEvents(memoryAppender); // Add an event handler to handle updates from the MemoryAppender memoryAppender.Updated += HandleUpdate; }
private static IAppender GetMemoryAppender(string station) { //MemoryAppender var memoryAppenderLayout = new PatternLayout("%date{HH:MM:ss} | %message%newline"); memoryAppenderLayout.ActivateOptions(); var memoryAppenderWithEventsName = string.Format("{0}{1}", MemoryAppenderNameDefault, station); var levelRangeFilter = new LevelRangeFilter(); levelRangeFilter.LevelMax = Level.Fatal; levelRangeFilter.LevelMin = Level.Info; var memoryAppenderWithEvents = new MemoryAppenderWithEvents(); memoryAppenderWithEvents.Name = memoryAppenderWithEventsName; memoryAppenderWithEvents.AddFilter(levelRangeFilter); memoryAppenderWithEvents.Layout = memoryAppenderLayout; memoryAppenderWithEvents.ActivateOptions(); return(memoryAppenderWithEvents); }