87 lines
1.8 KiB
C#
87 lines
1.8 KiB
C#
#nullable enable
|
|
using System;
|
|
using System.Threading.Tasks;
|
|
using NuGet.Common;
|
|
|
|
namespace Torch.API.WebAPI.Plugins;
|
|
|
|
internal class NLogLogger : ILogger
|
|
{
|
|
private readonly NLog.ILogger _logger;
|
|
|
|
public NLogLogger(NLog.ILogger logger)
|
|
{
|
|
_logger = logger;
|
|
}
|
|
|
|
public void LogDebug(string data)
|
|
{
|
|
_logger.Debug(data);
|
|
}
|
|
|
|
public void LogVerbose(string data)
|
|
{
|
|
_logger.Trace(data);
|
|
}
|
|
|
|
public void LogInformation(string data)
|
|
{
|
|
_logger.Info(data);
|
|
}
|
|
|
|
public void LogMinimal(string data)
|
|
{
|
|
_logger.Debug(data);
|
|
}
|
|
|
|
public void LogWarning(string data)
|
|
{
|
|
_logger.Warn(data);
|
|
}
|
|
|
|
public void LogError(string data)
|
|
{
|
|
_logger.Error(data);
|
|
}
|
|
|
|
public void LogInformationSummary(string data)
|
|
{
|
|
_logger.Info(data);
|
|
}
|
|
|
|
public void Log(LogLevel level, string data)
|
|
{
|
|
_logger.Log(ToNLogLevel(level), data);
|
|
}
|
|
|
|
private static NLog.LogLevel ToNLogLevel(LogLevel level)
|
|
{
|
|
return level switch
|
|
{
|
|
LogLevel.Debug => NLog.LogLevel.Debug,
|
|
LogLevel.Verbose => NLog.LogLevel.Trace,
|
|
LogLevel.Information => NLog.LogLevel.Info,
|
|
LogLevel.Minimal => NLog.LogLevel.Debug,
|
|
LogLevel.Warning => NLog.LogLevel.Warn,
|
|
LogLevel.Error => NLog.LogLevel.Error,
|
|
_ => throw new ArgumentOutOfRangeException(nameof(level), level, null)
|
|
};
|
|
}
|
|
|
|
public Task LogAsync(LogLevel level, string data)
|
|
{
|
|
Log(level, data);
|
|
return Task.CompletedTask;
|
|
}
|
|
|
|
public void Log(ILogMessage message)
|
|
{
|
|
_logger.Log(ToNLogLevel(message.Level), message.FormatWithCode);
|
|
}
|
|
|
|
public Task LogAsync(ILogMessage message)
|
|
{
|
|
Log(message);
|
|
return Task.CompletedTask;
|
|
}
|
|
} |