.NET 6 NLog

  • .NET 6 NLog已关闭评论
  • 141 次浏览
  • A+
所属分类:.NET技术
摘要

1、安装 NLog.Web.AspNetCore 包2、新增Configs文件夹,在Configs文件夹下新增nlog.config文件

1、安装 NLog.Web.AspNetCore 包

2、新增Configs文件夹,在Configs文件夹下新增nlog.config文件

nlog.config文件内容如下

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">      <targets>         <!--此部分中的所有目标将自动异步-->         <target name="InfoFile" xsi:type="AsyncWrapper">             <!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->             <target name="log_file" xsi:type="File"                     fileName="${basedir}/Logs/${shortdate}/${shortdate}-InfoFile.txt"                     layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"                     archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"                     archiveAboveSize="102400"                     archiveNumbering="Sequence"                     concurrentWrites="true"                     keepFileOpen="false" />         </target>          <target name="WarnFile" xsi:type="AsyncWrapper">             <!--项目日志保存文件路径说明fileName="${basedir}/保存目录,以年月日的格式创建/${shortdate}/${记录器名称}-${单级记录}-${shortdate}.txt"-->             <target name="log_file" xsi:type="File"                     fileName="${basedir}/Logs/${shortdate}/${shortdate}-WarnFile.txt"                     layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"                     archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"                     archiveAboveSize="102400"                     archiveNumbering="Sequence"                     concurrentWrites="true"                     keepFileOpen="false" />         </target>                  <!--使用可自定义的着色将日志消息写入控制台-->         <target name="colorConsole" xsi:type="ColoredConsole" layout="[${date:format=HH:mm:ss}]:${message} ${exception:format=message}" />     </targets>      <!--规则配置,final - 最终规则匹配后不处理任何规则-->     <rules>         <logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />         <logger name="*" minlevel="Info" writeTo="InfoFile" />         <logger name="*" minlevel="Warn" writeTo="WarnFile" />         <!--<logger name="*" minlevel="Warn" writeTo="colorConsole" /> 如果需要打印在控制台则可以这样配置-->     </rules>

 

3、Program.cs 中 注入

// NLog:注册Nlog组件 builder.Logging.AddNLog("Configs/nlog.config");

4、新增帮助类LoggerHelper

    /// <summary>     /// nLog使用帮助类     /// </summary>     public class LoggerHelper     {         /// <summary>         /// 实例化nLog,即为获取配置文件相关信息(获取以当前正在初始化的类命名的记录器)         /// </summary>         private readonly static NLog.Logger _logger = LogManager.GetCurrentClassLogger();          private static LoggerHelper _obj;          public static LoggerHelper _         {             get => _obj ?? (new LoggerHelper());             set => _obj = value;         }          #region Debug,调试         public static void Debug(string msg)         {             _logger.Debug(msg);         }          public void Debug(string msg, Exception err)         {             _logger.Debug(err, msg);         }         #endregion          #region Info,信息         public static void Info(string msg)         {             _logger.Info(msg);         }          public void Info(string msg, Exception err)         {             _logger.Info(err, msg);         }         #endregion          #region Warn,警告         public static void Warn(string msg)         {             _logger.Warn(msg);         }          public void Warn(string msg, Exception err)         {             _logger.Warn(err, msg);         }         #endregion          #region Trace,追踪         public void Trace(string msg)         {             _logger.Trace(msg);         }          public void Trace(string msg, Exception err)         {             _logger.Trace(err, msg);         }         #endregion          #region Error,错误         public void Error(string msg)         {             _logger.Error(msg);         }          public void Error(string msg, Exception err)         {             _logger.Error(err, msg);         }         #endregion          #region Fatal,致命错误         public void Fatal(string msg)         {             _logger.Fatal(msg);         }          public void Fatal(string msg, Exception err)         {             _logger.Fatal(err, msg);         }         #endregion     }

5、调用

在接口或者需要写入日志的地方

LoggerHelper.Info("TEST111111111111111111111111111111111111111111111");             LoggerHelper.Warn("TEST222222222222222222222222222222222222222222"); 

 

说明:本内容仅仅作为学习记录,无任何商业目的。