diff options
| author | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-03-05 04:04:51 +0200 |
|---|---|---|
| committer | Roy Ben Shabat <Roy.mail.net@gmail.com> | 2025-03-05 04:04:51 +0200 |
| commit | ad89c52f42dd38dcdc332d2e1059b49858e0b9dd (patch) | |
| tree | 1d15d6fbab905e902f26cbccd5601f4e8e391543 /Software/Visual_Studio/FSE/Tango.FSE.UI | |
| parent | f7b8f6d9d43f82134c8d81cbff71a42b3609b4c5 (diff) | |
| download | Tango-ad89c52f42dd38dcdc332d2e1059b49858e0b9dd.tar.gz Tango-ad89c52f42dd38dcdc332d2e1059b49858e0b9dd.zip | |
Improved FSE log filtering
Diffstat (limited to 'Software/Visual_Studio/FSE/Tango.FSE.UI')
| -rw-r--r-- | Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/LogViewerPaneVM.cs | 70 |
1 files changed, 39 insertions, 31 deletions
diff --git a/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/LogViewerPaneVM.cs b/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/LogViewerPaneVM.cs index 1ceda060f..502d07d65 100644 --- a/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/LogViewerPaneVM.cs +++ b/Software/Visual_Studio/FSE/Tango.FSE.UI/Panes/LogViewerPaneVM.cs @@ -175,9 +175,9 @@ namespace Tango.FSE.UI.Panes ApplicationLogsView = CollectionViewSource.GetDefaultView(ApplicationLogs); FirmwareLogsView = CollectionViewSource.GetDefaultView(FirmwareLogs); - FSELogsView.Filter = FilterFSELogs; - ApplicationLogsView.Filter = FilterApplicationLogs; - FirmwareLogsView.Filter = FilterFirmwareLogs; + FSELogsView.Filter = (log) => FilterLogsFunc(log as LogItemBase, FSELogsFilter); + ApplicationLogsView.Filter = (log) => FilterLogsFunc(log as LogItemBase, ApplicationLogsFilter); + FirmwareLogsView.Filter = (log) => FilterLogsFunc(log as LogItemBase, FirmwareLogsFilter); SelectedFSELogsCategories = new SelectedObjectCollection<LogCategory>(new ObservableCollection<LogCategory>() { @@ -284,39 +284,47 @@ namespace Tango.FSE.UI.Panes await NotificationProvider.ShowDialog(new FirmwareLogItemViewVM() { LogItem = logItem }); } - private bool FilterFSELogs(object obj) + private bool FilterLogsFunc(LogItemBase log, String filter) { - var log = obj as LogItemBase; - if (log != null) { - return SelectedFSELogsCategories.SynchedSource.Contains(log.Category) && (String.IsNullOrWhiteSpace(FSELogsFilter) || log.Message.ToStringOrEmpty().ToLower().Contains(FSELogsFilter.ToStringOrEmpty().ToLower())); - } - else - { - return false; - } - } + bool includeLog = false; - private bool FilterApplicationLogs(object obj) - { - var log = obj as LogItemBase; - if (log != null) - { - return SelectedApplicationLogsCategories.SynchedSource.Contains(log.Category) && (String.IsNullOrWhiteSpace(ApplicationLogsFilter) || log.Message.ToStringOrEmpty().ToLower().Contains(ApplicationLogsFilter.ToStringOrEmpty().ToLower())); - } - else - { - return false; - } - } + if (String.IsNullOrWhiteSpace(filter)) return true; - private bool FilterFirmwareLogs(object obj) - { - var log = obj as EmbeddedLogItem; - if (log != null) - { - return SelectedFirmwareLogsCategories.SynchedSource.Contains(log.Category) && (String.IsNullOrWhiteSpace(FirmwareLogsFilter) || log.Message.ToStringOrEmpty().ToLower().Contains(FirmwareLogsFilter.ToStringOrEmpty().ToLower())); + if (filter.Contains("|")) + { + List<String> keywords = filter.Split('|').ToList(); + + if (keywords.Any(x => log.Category.ToString().ToLower() == x.ToLower())) + { + includeLog = true; + } + } + else + { + if (log.Category.ToString().ToLower() == filter.ToLower()) + { + includeLog = true; + } + } + + if (log.TimeStamp.ToString("HH:mm:ss").Contains(filter)) + { + includeLog = true; + } + + if (log.ClassName.ToLower() == filter.ToLower()) + { + includeLog = true; + } + + if (log.Message.ToLower().Contains(filter.ToLower())) + { + includeLog = true; + } + + return includeLog; } else { |
