From e7c29f60b7b97f74c5f654b0730425397b84fa33 Mon Sep 17 00:00:00 2001 From: jpieringer Date: Thu, 2 Jun 2016 15:36:52 +0200 Subject: [PATCH] Added support for the log level TRACE --- src/YALV.Core/Domain/LogItem.cs | 14 ++- .../Converters/LevelToSolidColorConverter.cs | 15 ++- src/YALV/MainWindow.xaml | 30 +++++ src/YALV/Resources/GlobalResources.xaml | 42 ++++++- src/YALV/ViewModel/MainWindowVM.cs | 105 ++++++++++++++++-- 5 files changed, 183 insertions(+), 23 deletions(-) diff --git a/src/YALV.Core/Domain/LogItem.cs b/src/YALV.Core/Domain/LogItem.cs index 317580c..6802b76 100644 --- a/src/YALV.Core/Domain/LogItem.cs +++ b/src/YALV.Core/Domain/LogItem.cs @@ -54,6 +54,9 @@ private void assignLevelIndex(string level) string ul = !String.IsNullOrWhiteSpace(level) ? level.Trim().ToUpper() : string.Empty; switch (ul) { + case "TRACE": + LevelIndex = LevelIndex.TRACE; + break; case "DEBUG": LevelIndex = LevelIndex.DEBUG; break; @@ -81,10 +84,11 @@ private void assignLevelIndex(string level) public enum LevelIndex { NONE = 0, - DEBUG = 1, - INFO = 2, - WARN = 3, - ERROR = 4, - FATAL = 5 + TRACE = 1, + DEBUG = 2, + INFO = 3, + WARN = 4, + ERROR = 5, + FATAL = 6 } } diff --git a/src/YALV/Common/Converters/LevelToSolidColorConverter.cs b/src/YALV/Common/Converters/LevelToSolidColorConverter.cs index 7f505cc..8a7b744 100644 --- a/src/YALV/Common/Converters/LevelToSolidColorConverter.cs +++ b/src/YALV/Common/Converters/LevelToSolidColorConverter.cs @@ -5,9 +5,12 @@ namespace YALV.Common.Converters { + using YALV.Core.Domain; + public class LevelToSolidColorConverter : IValueConverter { + private SolidColorBrush traceColor = Application.Current.FindResource("TraceLevelColor") as SolidColorBrush; private SolidColorBrush debugColor = Application.Current.FindResource("DebugLevelColor") as SolidColorBrush; private SolidColorBrush infoColor = Application.Current.FindResource("InfoLevelColor") as SolidColorBrush; private SolidColorBrush warnColor = Application.Current.FindResource("WarnLevelColor") as SolidColorBrush; @@ -22,15 +25,17 @@ public object Convert(object value, Type targetType, object parameter, System.Gl int levelIndex = (int)value; switch (levelIndex) { - case 1: + case (int)LevelIndex.TRACE: + return traceColor ?? Brushes.Transparent; + case (int)LevelIndex.DEBUG: return debugColor ?? Brushes.Transparent; - case 2: + case (int)LevelIndex.INFO: return infoColor ?? Brushes.Transparent; - case 3: + case (int)LevelIndex.WARN: return warnColor ?? Brushes.Transparent; - case 4: + case (int)LevelIndex.ERROR: return errorColor ?? Brushes.Transparent; - case 5: + case (int)LevelIndex.FATAL: return fatalColor ?? Brushes.Transparent; default: return Brushes.Transparent; diff --git a/src/YALV/MainWindow.xaml b/src/YALV/MainWindow.xaml index 0650937..c4eb4f2 100644 --- a/src/YALV/MainWindow.xaml +++ b/src/YALV/MainWindow.xaml @@ -160,6 +160,28 @@ + + + + + + + + + + + + + + + + + - + + + + + + @@ -471,7 +484,7 @@ + Value="3"> @@ -480,7 +493,7 @@ + Value="4"> @@ -489,7 +502,7 @@ + Value="5"> @@ -498,7 +511,7 @@ + Value="6"> @@ -561,6 +574,25 @@ + + + + + + + + + + /// ShowLevelTrace Property + /// + public bool ShowLevelTrace + { + get { return _showLevelTrace; } + set + { + if (value != _showLevelTrace) + { + _showLevelTrace = value; + RaisePropertyChanged(PROP_ShowLevelTrace); + resetLevelSelection(); + RefreshView(); + } + } + } + private bool _showLevelTrace; + public static string PROP_ShowLevelTrace = "ShowLevelTrace"; + /// /// ShowLevelDebug Property /// @@ -799,7 +819,7 @@ public bool SelectAll if (_selectAll) { - _showLevelDebug = _showLevelInfo = _showLevelWarn = _showLevelError = _showLevelFatal = true; + _showLevelTrace = _showLevelDebug = _showLevelInfo = _showLevelWarn = _showLevelError = _showLevelFatal = true; refreshCheckBoxBinding(); RefreshView(); } @@ -809,6 +829,32 @@ public bool SelectAll private bool _selectAll; public static string PROP_SelectAll = "SelectAll"; + /// + /// SelectTrace Property + /// + public bool SelectTrace + { + get { return _selectTrace; } + set + { + if (value != _selectTrace) + { + _selectTrace = value; + RaisePropertyChanged(PROP_SelectTrace); + + if (_selectTrace) + { + _showLevelDebug = _showLevelInfo = _showLevelWarn = _showLevelError = _showLevelFatal = false; + _showLevelTrace = true; + refreshCheckBoxBinding(); + RefreshView(); + } + } + } + } + private bool _selectTrace; + public static string PROP_SelectTrace = "SelectTrace"; + /// /// SelectDebug Property /// @@ -824,7 +870,7 @@ public bool SelectDebug if (_selectDebug) { - _showLevelInfo = _showLevelWarn = _showLevelError = _showLevelFatal = false; + _showLevelTrace = _showLevelInfo = _showLevelWarn = _showLevelError = _showLevelFatal = false; _showLevelDebug = true; refreshCheckBoxBinding(); RefreshView(); @@ -850,7 +896,7 @@ public bool SelectInfo if (_selectInfo) { - _showLevelDebug = _showLevelWarn = _showLevelError = _showLevelFatal = false; + _showLevelTrace = _showLevelDebug = _showLevelWarn = _showLevelError = _showLevelFatal = false; _showLevelInfo = true; refreshCheckBoxBinding(); RefreshView(); @@ -876,7 +922,7 @@ public bool SelectWarn if (_selectWarn) { - _showLevelDebug = _showLevelInfo = _showLevelError = _showLevelFatal = false; + _showLevelTrace = _showLevelDebug = _showLevelInfo = _showLevelError = _showLevelFatal = false; _showLevelWarn = true; refreshCheckBoxBinding(); RefreshView(); @@ -902,7 +948,7 @@ public bool SelectError if (_selectError) { - _showLevelDebug = _showLevelInfo = _showLevelWarn = _showLevelFatal = false; + _showLevelTrace = _showLevelDebug = _showLevelInfo = _showLevelWarn = _showLevelFatal = false; _showLevelError = true; refreshCheckBoxBinding(); RefreshView(); @@ -928,7 +974,7 @@ public bool SelectFatal if (_selectFatal) { - _showLevelDebug = _showLevelInfo = _showLevelWarn = _showLevelError = false; + _showLevelTrace = _showLevelDebug = _showLevelInfo = _showLevelWarn = _showLevelError = false; _showLevelFatal = true; refreshCheckBoxBinding(); RefreshView(); @@ -1045,6 +1091,7 @@ public void LoadFileList(string[] pathList, bool add = false) private void refreshCheckBoxBinding() { + RaisePropertyChanged(PROP_ShowLevelTrace); RaisePropertyChanged(PROP_ShowLevelDebug); RaisePropertyChanged(PROP_ShowLevelInfo); RaisePropertyChanged(PROP_ShowLevelWarn); @@ -1055,6 +1102,7 @@ private void refreshCheckBoxBinding() private void resetLevelSelection() { SelectAll = false; + SelectTrace = false; SelectDebug = false; SelectInfo = false; SelectWarn = false; @@ -1389,6 +1437,8 @@ private bool levelCheckFilter(object item) { switch (logItem.LevelIndex) { + case LevelIndex.TRACE: + return ShowLevelTrace; case LevelIndex.DEBUG: return ShowLevelDebug; case LevelIndex.INFO: @@ -1408,6 +1458,21 @@ private bool levelCheckFilter(object item) #region Counters + /// + /// ItemsTraceCount Property + /// + public int ItemsTraceCount + { + get { return _itemsTraceCount; } + set + { + _itemsTraceCount = value; + RaisePropertyChanged(PROP_ItemsTraceCount); + } + } + private int _itemsTraceCount; + public static string PROP_ItemsTraceCount = "ItemsTraceCount"; + /// /// ItemsDebugCount Property /// @@ -1483,6 +1548,21 @@ public int ItemsFatalCount private int _itemsFatalCount; public static string PROP_ItemsFatalCount = "ItemsFatalCount"; + /// + /// ItemsTraceFilterCount Property + /// + public int ItemsTraceFilterCount + { + get { return _itemsTraceFilterCount; } + set + { + _itemsTraceFilterCount = value; + RaisePropertyChanged(PROP_ItemsTraceFilterCount); + } + } + private int _itemsTraceFilterCount; + public static string PROP_ItemsTraceFilterCount = "ItemsTraceFilterCount"; + /// /// ItemsDebugFilterCount Property /// @@ -1579,6 +1659,10 @@ private void updateCounters() where it.Level.Equals("DEBUG", StringComparison.OrdinalIgnoreCase) select it).Count(); + ItemsTraceCount = (from it in Items + where it.Level.Equals("TRACE", StringComparison.OrdinalIgnoreCase) + select it).Count(); + ItemsInfoCount = (from it in Items where it.Level.Equals("INFO", StringComparison.OrdinalIgnoreCase) select it).Count(); @@ -1607,6 +1691,10 @@ private void updateFilteredCounters(ICollectionView filteredList) { ItemsFilterCount = fltList.Count(); + ItemsTraceFilterCount = (from it in fltList + where it.Level.Equals("TRACE", StringComparison.OrdinalIgnoreCase) + select it).Count(); + ItemsDebugFilterCount = (from it in fltList where it.Level.Equals("DEBUG", StringComparison.OrdinalIgnoreCase) select it).Count(); @@ -1631,6 +1719,7 @@ where it.Level.Equals("FATAL", StringComparison.OrdinalIgnoreCase) else { ItemsFilterCount = 0; + ItemsTraceFilterCount = 0; ItemsDebugFilterCount = 0; ItemsInfoFilterCount = 0; ItemsWarnFilterCount = 0;