29 lines
1.2 KiB
C#
29 lines
1.2 KiB
C#
using System;
|
|
using System.Diagnostics;
|
|
|
|
namespace Syntriax.Engine.Core.Debug;
|
|
|
|
public static class LoggerExtensions
|
|
{
|
|
public static void Log<T>(this ILogger logger, T caller, string message, ILogger.Level level = ILogger.Level.Info, bool force = false)
|
|
{
|
|
string body = $"{caller?.GetType().Name ?? typeof(T).Name}: {message}";
|
|
logger.Log(body, level, force);
|
|
}
|
|
|
|
public static void LogWarning<T>(this ILogger logger, T caller, string message, bool force = false) => Log(logger, caller, message, ILogger.Level.Info, force);
|
|
|
|
public static void LogError<T>(this ILogger logger, T caller, string message, bool force = false)
|
|
{
|
|
Log(logger, caller, message, ILogger.Level.Error, force);
|
|
Log(logger, caller, $"{nameof(StackTrace)}:{Environment.NewLine}{new StackTrace()}");
|
|
}
|
|
|
|
public static void LogException<T>(this ILogger logger, T caller, Exception exception, bool force = false)
|
|
{
|
|
Log(logger, caller, $"Message: {exception.Message}", ILogger.Level.Error, force);
|
|
Log(logger, caller, $"InnerException: {exception.InnerException}", ILogger.Level.Error, force);
|
|
Log(logger, caller, $"{nameof(StackTrace)}:{Environment.NewLine}{exception.StackTrace}");
|
|
}
|
|
}
|