Skip to content

Commit 2817ab6

Browse files
authored
Merge pull request #18 from dotnet-campus/t/walterlv/ex
控制台中的日志也打印完整的异常信息
2 parents ade156c + 19af188 commit 2817ab6

File tree

2 files changed

+39
-34
lines changed

2 files changed

+39
-34
lines changed

src/dotnetCampus.Logger/Writers/ConsoleLogger.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ private void LogCore(LogLevel logLevel, Exception? exception, string message, Fu
7474
};
7575
ConsoleMultilineMessage($"""
7676
{message}
77-
{tag}{exception.GetType().Name}: {exception.Message}
77+
{tag}{exception}
7878
""", formatter);
7979
}
8080
}
@@ -140,14 +140,14 @@ private void ClearAndMoveToLastLine(int repeatCount)
140140
}
141141

142142
private const string Reset = C.Reset;
143+
private const string TraceText = F.Magenta;
143144
private const string DebugText = F.White;
144-
private const string TraceText = F.BrightBlack;
145145
private const string InformationText = F.Green + D.Bold;
146146
private const string WarningText = F.Yellow;
147147
private const string ErrorText = F.BrightRed;
148148
private const string CriticalText = F.Red;
149149

150-
private static string TraceTag => $"{B.Black}{F.BrightBlack}[{DateTime.Now:HH:mm:ss.fff}]{Reset}";
150+
private static string TraceTag => $"{B.Magenta}{F.White}[{DateTime.Now:HH:mm:ss.fff}]{Reset}";
151151
private static string DebugTag => $"{B.BrightBlack}{F.White}[{DateTime.Now:HH:mm:ss.fff}]{Reset}";
152152
private static string InformationTag => $"{B.Green}{F.Black}[{DateTime.Now:HH:mm:ss.fff}]{Reset}";
153153
private static string WarningTag => $"{B.Yellow}{F.Black}[{DateTime.Now:HH:mm:ss.fff}]{Reset}";

src/dotnetCampus.Logger/Writers/Helpers/TagFilterManager.cs

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Diagnostics.CodeAnalysis;
34
using System.Linq;
45

56
namespace dotnetCampus.Logging.Writers.Helpers;
@@ -109,54 +110,58 @@ internal bool IsTagEnabled(string text)
109110
/// <param name="args">命令行参数。</param>
110111
public static TagFilterManager? FromCommandLineArgs(string[] args)
111112
{
113+
if (!TryGetCommandLineValue(args, LogTagParameterName, out var value))
114+
{
115+
return null;
116+
}
117+
112118
HashSet<string> anyFilterTags = [];
113119
HashSet<string> includingFilterTags = [];
114120
HashSet<string> excludingFilterTags = [];
115-
for (var i = 0; i < args.Length; i++)
121+
var filterTags = value.Split([',', ';', ' ']);
122+
foreach (var tag in filterTags)
116123
{
117-
if (args[i] != LogTagParameterName || i + 1 >= args.Length)
118-
{
119-
continue;
120-
}
121-
122-
var filterTags = args[i + 1].Split([',', ';', ' ']);
123-
foreach (var tag in filterTags)
124+
if (tag.StartsWith("-", StringComparison.Ordinal))
124125
{
125-
if (tag.StartsWith("-", StringComparison.Ordinal))
126-
{
127126
#if NET8_0_OR_GREATER
128-
excludingFilterTags.Add(tag[1..]);
127+
excludingFilterTags.Add(tag[1..]);
129128
#else
130-
excludingFilterTags.Add(tag.Substring(1));
129+
excludingFilterTags.Add(tag.Substring(1));
131130
#endif
132-
}
133-
else if (tag.StartsWith("+", StringComparison.Ordinal))
134-
{
131+
}
132+
else if (tag.StartsWith("+", StringComparison.Ordinal))
133+
{
135134
#if NET8_0_OR_GREATER
136-
includingFilterTags.Add(tag[1..]);
135+
includingFilterTags.Add(tag[1..]);
137136
#else
138-
includingFilterTags.Add(tag.Substring(1));
137+
includingFilterTags.Add(tag.Substring(1));
139138
#endif
140-
}
141-
else
142-
{
143-
anyFilterTags.Add(tag);
144-
}
145139
}
146-
147-
return new TagFilterManager
140+
else
148141
{
149-
AnyFilterTags = anyFilterTags.ToImmutableHashSet(),
150-
IncludingFilterTags = includingFilterTags.ToImmutableHashSet(),
151-
ExcludingFilterTags = excludingFilterTags.ToImmutableHashSet(),
152-
};
142+
anyFilterTags.Add(tag);
143+
}
153144
}
154145

155146
return new TagFilterManager
156147
{
157-
AnyFilterTags = [],
158-
IncludingFilterTags = [],
159-
ExcludingFilterTags = [],
148+
AnyFilterTags = anyFilterTags.ToImmutableHashSet(),
149+
IncludingFilterTags = includingFilterTags.ToImmutableHashSet(),
150+
ExcludingFilterTags = excludingFilterTags.ToImmutableHashSet(),
160151
};
161152
}
153+
154+
private static bool TryGetCommandLineValue(string[] args, string parameterName, [NotNullWhen(true)] out string? value)
155+
{
156+
for (var i = 0; i < args.Length; i++)
157+
{
158+
if (string.Equals(args[i], parameterName, StringComparison.OrdinalIgnoreCase) && i + 1 < args.Length)
159+
{
160+
value = args[i + 1];
161+
return true;
162+
}
163+
}
164+
value = null;
165+
return false;
166+
}
162167
}

0 commit comments

Comments
 (0)