Skip to content

Commit 87cb9d1

Browse files
authored
Merge pull request #14 from dotnet-campus/t/walterlv/api-break
[API Break] 优化 Log 的 debug/trace 方法的使用体验
2 parents 2f19dd6 + 36018e4 commit 87cb9d1

File tree

4 files changed

+77
-43
lines changed

4 files changed

+77
-43
lines changed

samples/LoggerSample.LoggerDependentLibrary/DllReferenceTarget.cs

+14-12
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,22 @@ public class DllReferenceTarget
66
{
77
public static void CollectLogs()
88
{
9-
Log.Trace.Trace("[DllReference] Log.Trace.Trace");
10-
Log.Trace.Debug("[DllReference] Log.Trace.Debug");
11-
Log.Trace.Info("[DllReference] Log.Trace.Info");
12-
Log.Trace.Warn("[DllReference] Log.Trace.Warn");
13-
Log.Trace.Error("[DllReference] Log.Trace.Error");
14-
Log.Trace.Fatal("[DllReference] Log.Trace.Fatal");
9+
Log.TraceLogger.Trace("[DllReference] Log.Trace.Trace");
10+
Log.TraceLogger.Debug("[DllReference] Log.Trace.Debug");
11+
Log.TraceLogger.Info("[DllReference] Log.Trace.Info");
12+
Log.TraceLogger.Warn("[DllReference] Log.Trace.Warn");
13+
Log.TraceLogger.Error("[DllReference] Log.Trace.Error");
14+
Log.TraceLogger.Fatal("[DllReference] Log.Trace.Fatal");
1515

16-
Log.Debug.Trace("[DllReference] Log.Debug.Trace");
17-
Log.Debug.Debug("[DllReference] Log.Debug.Debug");
18-
Log.Debug.Info("[DllReference] Log.Debug.Info");
19-
Log.Debug.Warn("[DllReference] Log.Debug.Warn");
20-
Log.Debug.Error("[DllReference] Log.Debug.Error");
21-
Log.Debug.Fatal("[DllReference] Log.Debug.Fatal");
16+
Log.DebugLogger.Trace("[DllReference] Log.Debug.Trace");
17+
Log.DebugLogger.Debug("[DllReference] Log.Debug.Debug");
18+
Log.DebugLogger.Info("[DllReference] Log.Debug.Info");
19+
Log.DebugLogger.Warn("[DllReference] Log.Debug.Warn");
20+
Log.DebugLogger.Error("[DllReference] Log.Debug.Error");
21+
Log.DebugLogger.Fatal("[DllReference] Log.Debug.Fatal");
2222

23+
Log.Trace("[DllReference] Log.Trace");
24+
Log.Debug("[DllReference] Log.Debug");
2325
Log.Info("[DllReference] Log.Info");
2426
Log.Warn("[DllReference] Log.Warn");
2527
Log.Error("[DllReference] Log.Error");

samples/LoggerSample.LoggerIndependentLibrary/SourceReferenceTarget.cs

+14-12
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,22 @@ public static class SourceReferenceTarget
66
{
77
public static void CollectLogs()
88
{
9-
Log.Trace.Trace("[SourceReference] Log.Trace.Trace");
10-
Log.Trace.Debug("[SourceReference] Log.Trace.Debug");
11-
Log.Trace.Info("[SourceReference] Log.Trace.Info");
12-
Log.Trace.Warn("[SourceReference] Log.Trace.Warn");
13-
Log.Trace.Error("[SourceReference] Log.Trace.Error");
14-
Log.Trace.Fatal("[SourceReference] Log.Trace.Fatal");
9+
Log.TraceLogger.Trace("[SourceReference] Log.Trace.Trace");
10+
Log.TraceLogger.Debug("[SourceReference] Log.Trace.Debug");
11+
Log.TraceLogger.Info("[SourceReference] Log.Trace.Info");
12+
Log.TraceLogger.Warn("[SourceReference] Log.Trace.Warn");
13+
Log.TraceLogger.Error("[SourceReference] Log.Trace.Error");
14+
Log.TraceLogger.Fatal("[SourceReference] Log.Trace.Fatal");
1515

16-
Log.Debug.Trace("[SourceReference] Log.Debug.Trace");
17-
Log.Debug.Debug("[SourceReference] Log.Debug.Debug");
18-
Log.Debug.Info("[SourceReference] Log.Debug.Info");
19-
Log.Debug.Warn("[SourceReference] Log.Debug.Warn");
20-
Log.Debug.Error("[SourceReference] Log.Debug.Error");
21-
Log.Debug.Fatal("[SourceReference] Log.Debug.Fatal");
16+
Log.DebugLogger.Trace("[SourceReference] Log.Debug.Trace");
17+
Log.DebugLogger.Debug("[SourceReference] Log.Debug.Debug");
18+
Log.DebugLogger.Info("[SourceReference] Log.Debug.Info");
19+
Log.DebugLogger.Warn("[SourceReference] Log.Debug.Warn");
20+
Log.DebugLogger.Error("[SourceReference] Log.Debug.Error");
21+
Log.DebugLogger.Fatal("[SourceReference] Log.Debug.Fatal");
2222

23+
Log.Trace("[SourceReference] Log.Trace");
24+
Log.Debug("[SourceReference] Log.Debug");
2325
Log.Info("[SourceReference] Log.Info");
2426
Log.Warn("[SourceReference] Log.Warn");
2527
Log.Error("[SourceReference] Log.Error");

samples/LoggerSample.LoggerIndependentProject/SourceReferenceTarget.cs

+14-12
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,22 @@ public class SourceReferenceTarget
66
{
77
public static void CollectLogs()
88
{
9-
Log.Trace.Trace("[SourceReference] Log.Trace.Trace");
10-
Log.Trace.Debug("[SourceReference] Log.Trace.Debug");
11-
Log.Trace.Info("[SourceReference] Log.Trace.Info");
12-
Log.Trace.Warn("[SourceReference] Log.Trace.Warn");
13-
Log.Trace.Error("[SourceReference] Log.Trace.Error");
14-
Log.Trace.Fatal("[SourceReference] Log.Trace.Fatal");
9+
Log.TraceLogger.Trace("[SourceReference] Log.Trace.Trace");
10+
Log.TraceLogger.Debug("[SourceReference] Log.Trace.Debug");
11+
Log.TraceLogger.Info("[SourceReference] Log.Trace.Info");
12+
Log.TraceLogger.Warn("[SourceReference] Log.Trace.Warn");
13+
Log.TraceLogger.Error("[SourceReference] Log.Trace.Error");
14+
Log.TraceLogger.Fatal("[SourceReference] Log.Trace.Fatal");
1515

16-
Log.Debug.Trace("[SourceReference] Log.Debug.Trace");
17-
Log.Debug.Debug("[SourceReference] Log.Debug.Debug");
18-
Log.Debug.Info("[SourceReference] Log.Debug.Info");
19-
Log.Debug.Warn("[SourceReference] Log.Debug.Warn");
20-
Log.Debug.Error("[SourceReference] Log.Debug.Error");
21-
Log.Debug.Fatal("[SourceReference] Log.Debug.Fatal");
16+
Log.DebugLogger.Trace("[SourceReference] Log.Debug.Trace");
17+
Log.DebugLogger.Debug("[SourceReference] Log.Debug.Debug");
18+
Log.DebugLogger.Info("[SourceReference] Log.Debug.Info");
19+
Log.DebugLogger.Warn("[SourceReference] Log.Debug.Warn");
20+
Log.DebugLogger.Error("[SourceReference] Log.Debug.Error");
21+
Log.DebugLogger.Fatal("[SourceReference] Log.Debug.Fatal");
2222

23+
Log.Trace("[SourceReference] Log.Trace");
24+
Log.Debug("[SourceReference] Log.Debug");
2325
Log.Info("[SourceReference] Log.Info");
2426
Log.Warn("[SourceReference] Log.Warn");
2527
Log.Error("[SourceReference] Log.Error");

src/dotnetCampus.Logger/Log.g.cs

+35-7
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ namespace dotnetCampus.Logging;
1111
public static partial class Log
1212
{
1313
private static ILogger _current;
14+
private static DebugLogger _debug;
15+
private static TraceLogger _trace;
1416

1517
static Log()
1618
{
@@ -25,7 +27,7 @@ static Log()
2527
public static ILogger Current
2628
{
2729
get => _current;
28-
[MemberNotNull(nameof(_current), nameof(Debug), nameof(Trace))]
30+
[MemberNotNull(nameof(_current), nameof(_debug), nameof(_trace))]
2931
private set
3032
{
3133
if (value == null)
@@ -35,14 +37,14 @@ private set
3537

3638
if (Equals(_current, value))
3739
{
38-
Debug ??= new DebugLogger(value);
39-
Trace ??= new TraceLogger(value);
40+
_debug ??= new DebugLogger(value);
41+
_trace ??= new TraceLogger(value);
4042
return;
4143
}
4244

4345
_current = value;
44-
Debug = new DebugLogger(value);
45-
Trace = new TraceLogger(value);
46+
_debug = new DebugLogger(value);
47+
_trace = new TraceLogger(value);
4648
}
4749
}
4850

@@ -52,7 +54,7 @@ private set
5254
/// <remarks>
5355
/// 请注意,所有通过此记录器记录的日志仅在以 debug 配置编译时才会被记录,并且在非 debug 编译后对此记录器的调用都会被编译器优化掉。
5456
/// </remarks>
55-
public static DebugLogger Debug { get; private set; }
57+
public static DebugLogger DebugLogger => _debug;
5658

5759
/// <summary>
5860
/// 获取仅在 TRACE 条件编译符被定义时才会记录的日志记录器。
@@ -61,7 +63,33 @@ private set
6163
/// <remarks>
6264
/// 请注意,所有通过此记录器记录的日志仅在定义了 TRACE 条件编译符时才会被记录,并且在未定义 TRACE 条件编译符后对此记录器的调用都会被编译器优化掉。
6365
/// </remarks>
64-
public static TraceLogger Trace { get; private set; }
66+
public static TraceLogger TraceLogger => _trace;
67+
68+
/// <summary>
69+
/// 记录跟踪日志。
70+
/// </summary>
71+
/// <param name="message">要记录的消息。</param>
72+
/// <remarks>
73+
/// 如果开启了跟踪级别的日志记录,此方法产生的日志在生产环境中也依然会被记录。<br/>
74+
/// 如果希望仅在 TRACE 条件编译符被定义时记录日志,请使用 <see cref="TraceLogger"/>。
75+
/// </remarks>
76+
public static void Trace(string message)
77+
{
78+
Current.Log(LogLevel.Trace, default, message, null, (s, ex) => message);
79+
}
80+
81+
/// <summary>
82+
/// 记录调试日志。
83+
/// </summary>
84+
/// <param name="message">要记录的消息。</param>
85+
/// <remarks>
86+
/// 如果开启了调试级别的日志记录,此方法产生的日志在生产环境中也依然会被记录。<br/>
87+
/// 如果希望仅在 debug 配置下记录日志,请使用 <see cref="DebugLogger"/>。
88+
/// </remarks>
89+
public static void Debug(string message)
90+
{
91+
Current.Log(LogLevel.Debug, default, message, null, (s, ex) => message);
92+
}
6593

6694
/// <summary>
6795
/// 记录信息日志。

0 commit comments

Comments
 (0)