DTLib/DTLib.Logging/LoggerExtensions.cs
2022-12-06 13:14:36 +06:00

34 lines
1.5 KiB
C#

using DTLib.Ben.Demystifier;
namespace DTLib.Logging.New;
public static class LoggerExtensions
{
// replaces same overload in every ILogger instaance
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void Log(this ILogger logger, string context, LogSeverity severity, object message)
=> logger.Log(context, severity, message, logger.Format);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void LogDebug(this ILogger logger, string context, object message)
=> logger.Log(context, LogSeverity.Debug, message);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void LogInfo(this ILogger logger, string context, object message)
=> logger.Log(context, LogSeverity.Info, message);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void LogWarn(this ILogger logger, string context, object message)
=> logger.Log(context, LogSeverity.Warn, message);
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void LogError(this ILogger logger, string context, object message)
=> logger.Log(context, LogSeverity.Error, message);
/// uses Ben.Demystifier to serialize exception
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static void LogException(this ILogger logger, string context, Exception ex)
=> logger.Log(context, LogSeverity.Error, ex.Demystify());
}