using MAX.Core.Logger; using MySqlX.XDevAPI; using NLog; using System; using LLogLevel = MAX.Core.Logger.LogLevel; using NLogLevel = NLog.LogLevel; namespace MAX.Framework.Logger { public class NLogger : ILoggerFacade { private static NLogger mySelf;//= default(T); public static NLogger Instance { get { if (mySelf == null) { mySelf = new NLogger(); } return mySelf; } } private readonly ILogger _log; private NLogger() { _log = LogManager.GetCurrentClassLogger(); } public bool IsDebugEnabled { get; private set; } = true; public void Debug(Exception ex, string message) { Execute(NLogLevel.Debug, ex, message); } public void Debug(string message) { Execute(NLogLevel.Debug, message); } public void Error(Exception ex) { Execute(NLogLevel.Error, ex); } public void Error(Exception ex, string message) { Execute(NLogLevel.Error, ex, message); } public void Error(string message) { Execute(NLogLevel.Error, message); } public void Fatal(Exception ex, string message) { Execute(NLogLevel.Fatal, ex, message); } public void Fatal(string message) { Execute(NLogLevel.Fatal, message); } public void Info(Exception ex, string message) { Execute(NLogLevel.Info, ex, message); } public void Info(string message) { Execute(NLogLevel.Info, message); } public void Warn(Exception ex, string message) { Execute(NLogLevel.Warn, ex, message); } public void Warn(string message) { Execute(NLogLevel.Warn, message); } public void Log(string message, LLogLevel level) { NLogLevel lv = NLogLevel.Info; switch (level) { case LLogLevel.Trace: lv = NLogLevel.Trace; break; case LLogLevel.Debug: lv = NLogLevel.Debug; break; case LLogLevel.Info: lv = NLogLevel.Info; break; case LLogLevel.Warn: lv = NLogLevel.Warn; break; case LLogLevel.Error: lv = NLogLevel.Error; break; case LLogLevel.Fatal: lv = NLogLevel.Fatal; break; case LLogLevel.None: lv = NLogLevel.Off; break; } Execute(lv, message); } /// /// 是否启用 /// private bool Enabled(NLogLevel level) { if (level > NLogLevel.Debug) { return true; } return IsDebugEnabled; } /// /// 执行 /// private void Execute(NLogLevel level, Exception ex, string message = "") { if (Enabled(level)) { _log.Log(level, ex, message, null); } } /// /// 执行 /// private void Execute(NLogLevel level, string message) { if (Enabled(level)) { _log.Log(level, message); } } } }