aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/FSE/Tango.FSE.UI
diff options
context:
space:
mode:
authorRoy Ben Shabat <Roy.mail.net@gmail.com>2025-03-05 04:04:51 +0200
committerRoy Ben Shabat <Roy.mail.net@gmail.com>2025-03-05 04:04:51 +0200
commitad89c52f42dd38dcdc332d2e1059b49858e0b9dd (patch)
tree1d15d6fbab905e902f26cbccd5601f4e8e391543 /Software/Visual_Studio/FSE/Tango.FSE.UI
parentf7b8f6d9d43f82134c8d81cbff71a42b3609b4c5 (diff)
downloadTango-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.cs70
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
{