Mango.Nop.Libraries/Mango.Nop.Core/Loggers/NopLogWriter.cs

61 lines
2.6 KiB
C#

using AyCode.Core.Helpers;
using AyCode.Entities;
using AyCode.Entities.Server.LogItems;
using AyCode.Utils.Extensions;
using LogLevel = AyCode.Core.Loggers.LogLevel;
using LogLevelNop = Nop.Core.Domain.Logging.LogLevel;
namespace Mango.Nop.Core.Loggers
{
public class NopLogWriter : AcLogItemWriterBase<AcLogItem>//AcTextLogWriterBase
{
private static readonly SemaphoreSlim LockSlim = new(0);
private readonly global::Nop.Services.Logging.ILogger _nopLogger;
public NopLogWriter(global::Nop.Services.Logging.ILogger nopLogger) : this(nopLogger, null)
{ }
public NopLogWriter(global::Nop.Services.Logging.ILogger nopLogger, string? categoryName = null) : base(categoryName)
{
_nopLogger = nopLogger;
}
//public NopLogWriter(ILogger nopLogger, AppType appType, LogLevel logLevel, string? categoryName = null) : base(appType, logLevel, categoryName)
//{
// _nopLogger=nopLogger;
//}
protected override void WriteLogItemCallback(AcLogItem logItem)
{
using (LockSlim.UseWait())
{
switch (logItem.LogLevel)
{
case LogLevel.Detail:
case LogLevel.Trace:
case LogLevel.Debug:
if (_nopLogger.IsEnabled(LogLevelNop.Debug)) _nopLogger.InsertLog(LogLevelNop.Debug, logItem.Text, logItem.Exception, null);
break;
case LogLevel.Info:
if (_nopLogger.IsEnabled(LogLevelNop.Information)) _nopLogger.InsertLog(LogLevelNop.Information, logItem.Text, logItem.Exception, null);
//_nopLogger.Information(logItem.Text); //.Forget();
break;
case LogLevel.Suggest:
case LogLevel.Warning:
if (_nopLogger.IsEnabled(LogLevelNop.Warning)) _nopLogger.InsertLog(LogLevelNop.Warning, logItem.Text, logItem.Exception, null);
//_nopLogger.Warning(logItem.Text); //.Forget();
break;
case LogLevel.Error:
if (_nopLogger.IsEnabled(LogLevelNop.Error)) _nopLogger.InsertLog(LogLevelNop.Error, logItem.Text, logItem.Exception, null);
//_nopLogger.Error(logItem.Text); //.Forget();//, logItem.Exception);
break;
case LogLevel.Disabled:
break;
default:
throw new ArgumentOutOfRangeException();
}
}
}
}
}