From df3d5df306b523200b6a6489dd3c38e9b92318ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Boh=C3=A1=C4=8Dek?= Date: Fri, 31 Dec 2021 18:38:45 +0100 Subject: [PATCH] feat: update result logging mechanism --- .../Extensions/ResultExtensions.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/Core/NosSmooth.Core/Extensions/ResultExtensions.cs b/Core/NosSmooth.Core/Extensions/ResultExtensions.cs index 24ae4e5..c3c1596 100644 --- a/Core/NosSmooth.Core/Extensions/ResultExtensions.cs +++ b/Core/NosSmooth.Core/Extensions/ResultExtensions.cs @@ -33,7 +33,8 @@ public static class ResultExtensions using StringWriter stringWriter = new StringWriter(); using IndentedTextWriter logTextWriter = new IndentedTextWriter(stringWriter, " "); - logTextWriter.Write("Encountered an error: "); + logTextWriter.WriteLine("Encountered an error"); + logTextWriter.Indent++; LogResultError(logTextWriter, result); logger.LogError(stringWriter.ToString()); @@ -67,8 +68,9 @@ public static class ResultExtensions throw new InvalidOperationException("The result was successful, it has to be unsuccessful to log it."); } - logTextWriter.WriteLine(result.Error.Message); + AppendErrorMessage(logTextWriter, result.Error); IResultError? lastError = result.Error; + logTextWriter.Indent++; while ((result = result?.Inner) is not null && result.Error is not null) { // ReSharper disable once PossibleUnintendedReferenceComparison @@ -78,9 +80,14 @@ public static class ResultExtensions } lastError = result.Error; - logTextWriter.WriteLine("--- See the inner error ---"); - logTextWriter.Indent++; - logTextWriter.WriteLine(result.Error.Message); + // logTextWriter.Indent++; + logTextWriter.Write("---> "); + AppendErrorMessage(logTextWriter, result.Error); } } + + private static void AppendErrorMessage(IndentedTextWriter indentedTextWriter, IResultError error) + { + indentedTextWriter.WriteLine($"{error.GetType().FullName}: {error.Message}"); + } } \ No newline at end of file -- 2.48.1