diff --git a/Engine.Core/Debug/ILogger.cs b/Engine.Core/Debug/ILogger.cs index c1e78d2..c66cfb7 100644 --- a/Engine.Core/Debug/ILogger.cs +++ b/Engine.Core/Debug/ILogger.cs @@ -8,6 +8,7 @@ public interface ILogger enum Level { + Trace, Info, Warning, Error, diff --git a/Engine.Core/Debug/LoggerBase.cs b/Engine.Core/Debug/LoggerBase.cs index 6b0439c..9bbcf10 100644 --- a/Engine.Core/Debug/LoggerBase.cs +++ b/Engine.Core/Debug/LoggerBase.cs @@ -4,7 +4,7 @@ namespace Syntriax.Engine.Core.Debug; public abstract class LoggerBase : ILogger { - public ILogger.Level FilterLevel { get; set; } = ILogger.Level.Info; + public ILogger.Level FilterLevel { get; set; } = ILogger.Level.Trace; public void Log(string message, ILogger.Level level = ILogger.Level.Info, bool force = false) { diff --git a/Engine.Core/Debug/LoggerExtensions.cs b/Engine.Core/Debug/LoggerExtensions.cs index e98e219..90a7bae 100644 --- a/Engine.Core/Debug/LoggerExtensions.cs +++ b/Engine.Core/Debug/LoggerExtensions.cs @@ -16,7 +16,7 @@ public static class LoggerExtensions public static void LogError(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()}"); + LogTrace(logger, caller, new StackTrace(), force); } public static void LogException(this ILogger logger, T caller, Exception exception, bool force = false) @@ -24,6 +24,13 @@ public static class LoggerExtensions Log(logger, caller, $"Exception of type {exception.GetType().Name} occured", ILogger.Level.Error, force); 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}"); + + // Not using LogTrace because exception.StackTrace is a type of string + Log(logger, caller, $"{nameof(StackTrace)}:{Environment.NewLine}{exception.StackTrace}", ILogger.Level.Trace); + } + + public static void LogTrace(this ILogger logger, T caller, StackTrace stackTrace, bool force = false) + { + Log(logger, caller, $"{nameof(StackTrace)}:{Environment.NewLine}{stackTrace ?? new()}", ILogger.Level.Trace, force); } }