public void ProcessLogMessage(LogMessage logMsg) { // Check 1st in the global LoggerPath/Logger dictionary LoggerItem logger; if (!_fullPathLoggers.TryGetValue(logMsg.LoggerName, out logger)) { // Not found, create one logger = RootLoggerItem.GetOrCreateLogger(logMsg.LoggerName); } if (logger == null) throw new Exception("No Logger for this Log Message."); logger.AddLogMessage(logMsg); }
internal LogMessageItem AddLogMessage(LogMessage logMsg) { LogMessageItem item = new LogMessageItem(this, logMsg); item.Enabled = Enabled; LogMessages.Add(item); // We may remove and add many items, disable the drawing one moment _logListView.BeginUpdate(); // Limit the number of displayed messages if necessary if (UserSettings.Instance.MessageCycleCount > 0) RemoveExtraLogMessages(UserSettings.Instance.MessageCycleCount); // Message if (Enabled) { // Set Previous item if (_logListView.Items.Count > 0) item.Previous = _logListView.Items[_logListView.Items.Count - 1].Tag as LogMessageItem; // Add it to the main list _logListView.Items.Add(item.Item); // Add to the corresponding if necessary if (UserSettings.Instance.GroupLogMessages && (Group != null)) Group.Items.Add(item.Item); // Force the item to be visible if necessary if (UserSettings.Instance.AutoScrollToLastLog) { item.Item.EnsureVisible(); } } // Hide the item is is not in range or doesn't match the current text search if any if (!item.IsLevelInRange() || (_hasSearchedText && !item.HasSearchedText(_searchedText))) DisableLogMessage(item); // Done! _logListView.EndUpdate(); return item; }
public LogMessageItem(LoggerItem parent, LogMessage logMsg) { Parent = parent; Message = logMsg; string parentName = Parent.Name; if ((Parent.Name == logMsg.ThreadName) && (Parent.Parent != null)) parentName = Parent.Parent.Name; // Create List View Item Item = new ListViewItem(logMsg.TimeStamp.ToString(UserSettings.Instance.TimeStampFormatString)); //Item.SubItems.Add(logMsg.Level.Name); Item.SubItems.Add(parentName); Item.SubItems.Add(logMsg.ThreadName); Item.SubItems.Add(logMsg.Message); Item.ToolTipText = logMsg.Message; Item.ForeColor = logMsg.Level.Color; Item.Tag = this; }
public void DoAppend(log4net.Core.LoggingEvent logEvent) { LogMessage logMsg = new LogMessage(logEvent); theMessages.Enqueue(logMsg); }