61 lines
2.6 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|