ProjectLighthouse/ProjectLighthouse/Logging/AspNetToKettuLogger.cs
2021-10-21 01:01:45 -04:00

29 lines
No EOL
1.2 KiB
C#

using System;
using Kettu;
using Microsoft.Extensions.Logging;
namespace LBPUnion.ProjectLighthouse.Logging {
public class AspNetToKettuLogger : ILogger {
public IDisposable BeginScope<TState>(TState state) {
return NullScope.Instance;
}
public bool IsEnabled(LogLevel logLevel) => true;
public void Log<TState>(LogLevel logLevel, EventId eventId, TState state, Exception exception, Func<TState, Exception, string> formatter) {
LoggerLevel loggerLevel = logLevel switch {
LogLevel.Trace => LoggerLevelAspNetTrace.Instance,
LogLevel.Debug => LoggerLevelAspNetDebug.Instance,
LogLevel.Information => LoggerLevelAspNetInformation.Instance,
LogLevel.Warning => LoggerLevelAspNetWarning.Instance,
LogLevel.Error => LoggerLevelAspNetError.Instance,
LogLevel.Critical => LoggerLevelAspNetCritical.Instance,
LogLevel.None => LoggerLevelAspNetNone.Instance,
_ => throw new ArgumentOutOfRangeException(nameof(logLevel), logLevel, null)
};
Logger.Log(state.ToString(), loggerLevel);
}
}
}