From 35c8630d8ceec75d83df127302a56b08fa7940e1 Mon Sep 17 00:00:00 2001 From: Macocian Alexandru Victor Date: Mon, 7 Jun 2021 00:09:59 +0200 Subject: [PATCH] Better log exception (#4) --- WpfExtended.Test/MainWindow.xaml.cs | 1 + WpfExtended/Logging/CVLogger.cs | 7 ++++--- WpfExtended/Logging/DebugLogsWriter.cs | 5 +++-- WpfExtended/Models/Log.cs | 3 ++- WpfExtended/WpfExtended.csproj | 2 +- 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/WpfExtended.Test/MainWindow.xaml.cs b/WpfExtended.Test/MainWindow.xaml.cs index a6e9ca1..5d363b7 100644 --- a/WpfExtended.Test/MainWindow.xaml.cs +++ b/WpfExtended.Test/MainWindow.xaml.cs @@ -41,6 +41,7 @@ namespace WpfExtended.Test this.logger = logger.ThrowIfNull(nameof(logger)); this.httpClient = httpClient.ThrowIfNull(nameof(httpClient)); this.ImageSource = new BitmapImage(new Uri(Path.GetFullPath("Images/Test.jpg"))); + this.logger.LogCritical(new Exception("Some exception message"), "Some exception is logged"); this.BuildEffectsView(); } diff --git a/WpfExtended/Logging/CVLogger.cs b/WpfExtended/Logging/CVLogger.cs index 538eeda..3445610 100644 --- a/WpfExtended/Logging/CVLogger.cs +++ b/WpfExtended/Logging/CVLogger.cs @@ -8,12 +8,12 @@ namespace WpfExtended.Logging public sealed class CVLogger : ILogger { private readonly string category; - private readonly CVLoggerProvider debugLoggerProvider; + private readonly CVLoggerProvider cvLoggerProvider; public CVLogger(string category, CVLoggerProvider debugLoggerProvider) { this.category = category; - this.debugLoggerProvider = debugLoggerProvider.ThrowIfNull(nameof(debugLoggerProvider)); + this.cvLoggerProvider = debugLoggerProvider.ThrowIfNull(nameof(debugLoggerProvider)); } public IDisposable BeginScope(TState state) @@ -32,6 +32,7 @@ namespace WpfExtended.Logging var log = new Log { + Exception = exception, LogLevel = logLevel, EventId = eventId.Name, Message = message, @@ -39,7 +40,7 @@ namespace WpfExtended.Logging LogTime = DateTime.Now }; - this.debugLoggerProvider.LogEntry(log); + this.cvLoggerProvider.LogEntry(log); } } } diff --git a/WpfExtended/Logging/DebugLogsWriter.cs b/WpfExtended/Logging/DebugLogsWriter.cs index 70d0084..2ca94d2 100644 --- a/WpfExtended/Logging/DebugLogsWriter.cs +++ b/WpfExtended/Logging/DebugLogsWriter.cs @@ -1,4 +1,5 @@ -using System.Diagnostics; +using System; +using System.Diagnostics; using WpfExtended.Models; namespace WpfExtended.Logging @@ -7,7 +8,7 @@ namespace WpfExtended.Logging { public void WriteLog(Log log) { - Debug.WriteLine($"{log.LogTime} - {log.Category} - {log.EventId} - {log.CorrelationVector} - {log.LogLevel} - {log.Message}"); + Debug.WriteLine($"{log.LogTime} - {log.Category} - {log.EventId} - {log.CorrelationVector} - {log.LogLevel} - {log.Message}{Environment.NewLine}{log.Exception}"); } } } diff --git a/WpfExtended/Models/Log.cs b/WpfExtended/Models/Log.cs index e47c53c..e653673 100644 --- a/WpfExtended/Models/Log.cs +++ b/WpfExtended/Models/Log.cs @@ -3,8 +3,9 @@ using System; namespace WpfExtended.Models { - public sealed class Log + public sealed record Log { + public Exception Exception { get; set; } public DateTime LogTime { get; set; } public string Category { get; set; } public string EventId { get; set; } diff --git a/WpfExtended/WpfExtended.csproj b/WpfExtended/WpfExtended.csproj index a697cae..18665be 100644 --- a/WpfExtended/WpfExtended.csproj +++ b/WpfExtended/WpfExtended.csproj @@ -6,7 +6,7 @@ true true License.txt - 0.4.1 + 0.4.2 latest Extension library for Windows Presentation Platform.