public void AddLog(LogData log) { switch (log.type) { case LogType.Log: logNum++; break; case LogType.Warning: warningNum++; break; case LogType.Error: case LogType.Exception: case LogType.Assert: errorNum++; break; } logList.Add(log); analysisDataManager.AddAnalysisData(log); analysisDataManager.Sort(); bool addFilterLog = true; /// add collapsed log data CollapsedLogData collapsedLogData; string key = log.GetKey(); var cloneLog = log.Clone(); if (collapsedLogDic.ContainsKey(key)) { collapsedLogData.count = collapsedLogDic[key].count + 1; collapsedLogData.log = collapsedLogDic[key].log; collapsedLogDic[key] = collapsedLogData; /// if not collapse, then should add filter log although the log is collapsed addFilterLog = !logFilter.collapse; } else { collapsedLogData.log = cloneLog; collapsedLogData.count = 1; collapsedLogDic.Add(key, collapsedLogData); collapsedLogList.Add(cloneLog); } if (addFilterLog && logFilter.ShouldDisplay(log)) { filteredLogList.Add(log); } }
public List <LogData> GetFilteredLogList(LogFilter filter, bool forceUpdate = false) { if (forceUpdate || this.logFilter.Equals(filter) == false) { var selectedLog = this.selectedLog; this.filteredLogList.Clear(); this.selectedLogIndex = -1; var logList = (filter.collapse && !filter.showTime) ? this.collapsedLogList : this.logList; for (int i = 0; i < logList.Count; i++) { var log = logList[i]; if (log == null) { continue; } if (filter.ShouldDisplay(log)) { this.filteredLogList.Add(log); if (filter.collapse) { if (log.Equals(selectedLog)) { this.selectedLogIndex = this.filteredLogList.Count - 1; } } else { if (log == selectedLog) { this.selectedLogIndex = this.filteredLogList.Count - 1; } } } } this.logFilter = filter; } return(filteredLogList); }