private void UpdateByActiveChange(bool oldIsActive, bool newIsActive) { if (oldIsActive == newIsActive) { return; } if (newIsActive) { var levels = GetLogsByLevel(SelectedMinLogLevel); levels.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.AddOrdered(m); } }); } else { LogsTrace.ForEach((m) => { Logs.Remove(m); }); LogsDebug.ForEach((m) => { Logs.Remove(m); }); LogsInfo.ForEach((m) => { Logs.Remove(m); }); LogsWarn.ForEach((m) => { Logs.Remove(m); }); LogsError.ForEach((m) => { Logs.Remove(m); }); LogsFatal.ForEach((m) => { Logs.Remove(m); }); } }
private List <LogViewModel> GetLogsByLevel(LoggingLevel level) { if (level == LoggingLevel.TRACE) { return(LogsTrace.Union(LogsDebug).Union(LogsInfo).Union(LogsWarn).Union(LogsError).Union(LogsFatal).ToList()); } else if (level == LoggingLevel.DEBUG) { return(LogsDebug.Union(LogsInfo).Union(LogsWarn).Union(LogsError).Union(LogsFatal).ToList()); } else if (level == LoggingLevel.INFO) { return(LogsInfo.Union(LogsWarn).Union(LogsError).Union(LogsFatal).ToList()); } else if (level == LoggingLevel.WARN) { return(LogsWarn.Union(LogsError).Union(LogsFatal).ToList()); } else if (level == LoggingLevel.ERROR) { return(LogsError.Union(LogsFatal).ToList()); } else if (level == LoggingLevel.FATAL) { return(LogsFatal.ToList()); } return(new List <LogViewModel>()); }
public void UpdateMaxNumberOfLogs(int maxNumberOfLogs) { if (MaxNumberOfLogsPerLevel <= maxNumberOfLogs) { MaxNumberOfLogsPerLevel = maxNumberOfLogs; return; } MaxNumberOfLogsPerLevel = maxNumberOfLogs; List <LogViewModel> logsToRemove = new List <LogViewModel>(); List <LogViewModel> logsToRemoveTrace = LogsTrace.Take(LogsTrace.Count - maxNumberOfLogs).ToList(); logsToRemoveTrace.ForEach((m) => { LogsTrace.Remove(m); }); List <LogViewModel> logsToRemoveDebug = LogsDebug.Take(LogsDebug.Count - maxNumberOfLogs).ToList(); logsToRemoveDebug.ForEach((m) => { LogsDebug.Remove(m); }); List <LogViewModel> logsToRemoveInfo = LogsInfo.Take(LogsInfo.Count - maxNumberOfLogs).ToList(); logsToRemoveInfo.ForEach((m) => { LogsInfo.Remove(m); }); List <LogViewModel> logsToRemoveWarn = LogsWarn.Take(LogsWarn.Count - maxNumberOfLogs).ToList(); logsToRemoveWarn.ForEach((m) => { LogsWarn.Remove(m); }); List <LogViewModel> logsToRemoveError = LogsError.Take(LogsError.Count - maxNumberOfLogs).ToList(); logsToRemoveError.ForEach((m) => { LogsError.Remove(m); }); List <LogViewModel> logsToRemoveFatal = LogsFatal.Take(LogsFatal.Count - maxNumberOfLogs).ToList(); logsToRemoveFatal.ForEach((m) => { LogsFatal.Remove(m); }); logsToRemove.AddRange(logsToRemoveTrace); logsToRemove.AddRange(logsToRemoveDebug); logsToRemove.AddRange(logsToRemoveInfo); logsToRemove.AddRange(logsToRemoveWarn); logsToRemove.AddRange(logsToRemoveError); logsToRemove.AddRange(logsToRemoveFatal); logsToRemove.ForEach((m) => { if (IsActive && LoggingLevel.IsLogLevelAboveMin(m.Level, SelectedMinLogLevel) && IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.Remove(m); } }); }
public void AddLog(LogViewModel log) { LogViewModel logToRemove = null; if (log.Level == LoggingLevel.TRACE) { LogsTrace.Add(log); if (LogsTrace.Count > MaxNumberOfLogsPerLevel) { var last = LogsTrace.First(); LogsTrace.Remove(last); logToRemove = last; } } else if (log.Level == LoggingLevel.DEBUG) { LogsDebug.Add(log); if (LogsDebug.Count > MaxNumberOfLogsPerLevel) { var last = LogsDebug.First(); LogsDebug.Remove(last); logToRemove = last; } } else if (log.Level == LoggingLevel.INFO) { LogsInfo.Add(log); if (LogsInfo.Count > MaxNumberOfLogsPerLevel) { var last = LogsInfo.First(); LogsInfo.Remove(last); logToRemove = last; } } else if (log.Level == LoggingLevel.WARN) { LogsWarn.Add(log); if (LogsWarn.Count > MaxNumberOfLogsPerLevel) { var last = LogsWarn.First(); LogsWarn.Remove(last); logToRemove = last; } } else if (log.Level == LoggingLevel.ERROR) { LogsError.Add(log); if (LogsError.Count > MaxNumberOfLogsPerLevel) { var last = LogsError.First(); LogsError.Remove(last); logToRemove = last; } } else if (log.Level == LoggingLevel.FATAL) { LogsFatal.Add(log); if (LogsFatal.Count > MaxNumberOfLogsPerLevel) { var last = LogsFatal.First(); LogsFatal.Remove(last); logToRemove = last; } } if (IsActive && LoggingLevel.IsLogLevelAboveMin(log.Level, SelectedMinLogLevel) && IsNamespaceActive(log) && IsSearchCriteriaMatch(log)) { Logs.Insert(0, log); if (logToRemove != null) { Logs.Remove(logToRemove); } } }
private void UpdateByLogLevelChange(LoggingLevel oldLogLevel, LoggingLevel newLogLevel) { if (!IsActive) { return; } if (oldLogLevel == null || newLogLevel == null || oldLogLevel.Id == newLogLevel.Id) { return; } bool isAdd = oldLogLevel.Id > newLogLevel.Id; var levelsBetween = LoggingLevel.GetLogLevelsBetween(oldLogLevel, newLogLevel); foreach (var levelBetween in levelsBetween) { if (levelBetween == LoggingLevel.TRACE) { if (isAdd) { LogsTrace.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.AddOrdered(m); } }); } else { LogsTrace.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.Remove(m); } }); } } else if (levelBetween == LoggingLevel.DEBUG) { if (isAdd) { LogsDebug.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.AddOrdered(m); } }); } else { LogsDebug.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.Remove(m); } }); } } else if (levelBetween == LoggingLevel.INFO) { if (isAdd) { LogsInfo.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.AddOrdered(m); } }); } else { LogsInfo.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.Remove(m); } }); } } else if (levelBetween == LoggingLevel.WARN) { if (isAdd) { LogsWarn.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.AddOrdered(m); } }); } else { LogsWarn.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.Remove(m); } }); } } else if (levelBetween == LoggingLevel.ERROR) { if (isAdd) { LogsError.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.AddOrdered(m); } }); } else { LogsError.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.Remove(m); } }); } } else if (levelBetween == LoggingLevel.FATAL) { if (isAdd) { LogsFatal.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.AddOrdered(m); } }); } else { LogsFatal.ForEach((m) => { if (IsNamespaceActive(m) && IsSearchCriteriaMatch(m)) { Logs.Remove(m); } }); } } } }