diff --git a/DTLib.Logging/LoggerContext.cs b/DTLib.Logging/LoggerContext.cs new file mode 100644 index 0000000..04a3644 --- /dev/null +++ b/DTLib.Logging/LoggerContext.cs @@ -0,0 +1,39 @@ +namespace DTLib.Logging.New; + +/// wrapper around ILogger and LoggerExtensions that stores context +public class LoggerContext +{ + public ILogger Logger; + public readonly string Context; + + public LoggerContext(ILogger logger, string context) + { + Logger = logger; + Context = context; + } + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void Log(LogSeverity severity, object message) + => Logger.Log(Context, severity, message); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void LogDebug(object message) + => Logger.LogDebug(Context, message); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void LogInfo(object message) + => Logger.LogInfo(Context, message); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void LogWarn(object message) + => Logger.LogWarn(Context, message); + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void LogError(object message) + => Logger.LogError(Context, message); + + /// uses Ben.Demystifier to serialize exception + [MethodImpl(MethodImplOptions.AggressiveInlining)] + public void LogException(Exception ex) + => Logger.LogException(Context, ex); +} \ No newline at end of file