Skip to content

Commit 81846e0

Browse files
author
Gonzalo Diaz
committed
[REFACTOR] Logger rewritten
1 parent ca46c24 commit 81846e0

File tree

1 file changed

+37
-24
lines changed

1 file changed

+37
-24
lines changed

src/algorithm_exercises_csharp_base/Logger.cs

Lines changed: 37 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ sealed class LoggerSingleton
1212
public static LoggerSingleton Instance => _instance.Value;
1313

1414
public ILogger Logger { get; }
15+
private readonly ILoggerFactory _loggerFactory;
1516

1617
private LoggerSingleton()
1718
{
@@ -24,54 +25,66 @@ private LoggerSingleton()
2425
logLevel = LogLevel.Information; // Set the minimum logging level
2526
}
2627

27-
var loggerFactory = LoggerFactory.Create(builder =>
28+
_loggerFactory = LoggerFactory.Create(builder =>
2829
{
2930
builder
3031
.AddConsole()
3132
.SetMinimumLevel(logLevel); // set minimum logging level
3233
});
3334

34-
Logger = loggerFactory.CreateLogger("GlobalLogger");
35+
Logger = _loggerFactory.CreateLogger("GlobalLogger");
3536

36-
Logger.LogInformation("Initializing");
37-
38-
Logger.LogInformation("Info level enabled");
39-
Logger.LogWarning("Warning level enabled");
40-
Logger.LogError("Error level enabled");
41-
Logger.LogDebug("Debug level enabled");
37+
_logInfo(Logger, "Initializing", Array.Empty<object>(), null);
38+
_logInfo(Logger, "Info level enabled", Array.Empty<object>(), null);
39+
_logWarning(Logger, "Warning level enabled", Array.Empty<object>(), null);
40+
_logError(Logger, "Error level enabled", Array.Empty<object>(), null);
41+
_logDebug(Logger, "Debug level enabled", Array.Empty<object>(), null);
4242
}
4343
}
4444

45-
public static ILogger getLogger()
46-
{
47-
return LoggerSingleton.Instance.Logger;
48-
}
45+
public static ILogger Logger => LoggerSingleton.Instance.Logger;
46+
47+
private static readonly Action<ILogger, string, object?[]?, Exception?> _logInfo =
48+
LoggerMessage.Define<string, object?[]?>(
49+
LogLevel.Information,
50+
new EventId(3, nameof(info)),
51+
"{Message} {Args}");
4952

5053
public static void info(string message, params object?[] args)
5154
{
52-
#pragma warning disable CA2254 // Template should be a static expression
53-
LoggerSingleton.Instance.Logger.LogInformation(message, args);
54-
#pragma warning restore CA2254 // Template should be a static expression
55+
_logInfo(LoggerSingleton.Instance.Logger, message, args, null);
5556
}
5657

58+
private static readonly Action<ILogger, string, object?[]?, Exception?> _logWarning =
59+
LoggerMessage.Define<string, object?[]?>(
60+
LogLevel.Warning,
61+
new EventId(2, nameof(warning)),
62+
"{Message} {Args}");
63+
5764
public static void warning(string message, params object?[] args)
5865
{
59-
#pragma warning disable CA2254 // Template should be a static expression
60-
LoggerSingleton.Instance.Logger.LogWarning(message);
61-
#pragma warning restore CA2254 // Template should be a static expression
66+
_logWarning(LoggerSingleton.Instance.Logger, message, args, null);
6267
}
6368

69+
private static readonly Action<ILogger, string, object?[]?, Exception?> _logError =
70+
LoggerMessage.Define<string, object?[]?>(
71+
LogLevel.Error,
72+
new EventId(1, nameof(error)),
73+
"{Message} {Args}");
74+
6475
public static void error(string message, params object?[] args)
6576
{
66-
#pragma warning disable CA2254 // Template should be a static expression
67-
LoggerSingleton.Instance.Logger.LogError(message);
68-
#pragma warning restore CA2254 // Template should be a static expression
77+
_logError(LoggerSingleton.Instance.Logger, message, args, null);
6978
}
7079

80+
private static readonly Action<ILogger, string, object?[]?, Exception?> _logDebug =
81+
LoggerMessage.Define<string, object?[]?>(
82+
LogLevel.Debug,
83+
new EventId(0, nameof(debug)),
84+
"{Message} {Args}");
85+
7186
public static void debug(string message, params object?[] args)
7287
{
73-
#pragma warning disable CA2254 // Template should be a static expression
74-
LoggerSingleton.Instance.Logger.LogDebug(message);
75-
#pragma warning restore CA2254 // Template should be a static expression
88+
_logDebug(LoggerSingleton.Instance.Logger, message, args, null);
7689
}
7790
}

0 commit comments

Comments
 (0)