introduction of nuget packages as plugins support

This commit is contained in:
zznty
2023-02-08 15:56:50 +07:00
parent 1a1a7e779a
commit b9cb71e11f
20 changed files with 805 additions and 10 deletions

View File

@@ -0,0 +1,87 @@
#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;
}
}