翼度科技»论坛 编程开发 .net 查看内容

.NET 6 NLog

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
1、安装 NLog.Web.AspNetCore 包
2、新增Configs文件夹,在Configs文件夹下新增nlog.config文件
nlog.config文件内容如下
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  3.       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4.     <targets>
  5.         
  6.         <target name="InfoFile" xsi:type="AsyncWrapper">
  7.             
  8.             <target name="log_file" xsi:type="File"
  9.                     fileName="${basedir}/Logs/${shortdate}/${shortdate}-InfoFile.txt"
  10.                     layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"
  11.                     archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"
  12.                     archiveAboveSize="102400"
  13.                     archiveNumbering="Sequence"
  14.                     concurrentWrites="true"
  15.                     keepFileOpen="false" />
  16.         </target>
  17.         <target name="WarnFile" xsi:type="AsyncWrapper">
  18.             
  19.             <target name="log_file" xsi:type="File"
  20.                     fileName="${basedir}/Logs/${shortdate}/${shortdate}-WarnFile.txt"
  21.                     layout="${longdate} | ${message} ${onexception:${exception:format=message} ${newline} ${stacktrace} ${newline}"
  22.                     archiveFileName="${basedir}/archives/${logger}-${level}-${shortdate}-{#####}.txt"
  23.                     archiveAboveSize="102400"
  24.                     archiveNumbering="Sequence"
  25.                     concurrentWrites="true"
  26.                     keepFileOpen="false" />
  27.         </target>
  28.         
  29.         
  30.         <target name="colorConsole" xsi:type="ColoredConsole" layout="[${date:format=HH\:mm\:ss}]:${message} ${exception:format=message}" />
  31.     </targets>
  32.    
  33.     <rules>
  34.         <logger name="Microsoft.*" minlevel="Info" writeTo="" final="true" />
  35.         <logger name="*" minlevel="Info" writeTo="InfoFile" />
  36.         <logger name="*" minlevel="Warn" writeTo="WarnFile" />
  37.         
  38.     </rules>
复制代码
 
3、Program.cs 中 注入
  1. // NLog:注册Nlog组件
  2. builder.Logging.AddNLog("Configs/nlog.config");
复制代码
4、新增帮助类LoggerHelper
  1.     /// <summary>
  2.     /// nLog使用帮助类
  3.     /// </summary>
  4.     public class LoggerHelper
  5.     {
  6.         /// <summary>
  7.         /// 实例化nLog,即为获取配置文件相关信息(获取以当前正在初始化的类命名的记录器)
  8.         /// </summary>
  9.         private readonly static NLog.Logger _logger = LogManager.GetCurrentClassLogger();
  10.         private static LoggerHelper _obj;
  11.         public static LoggerHelper _
  12.         {
  13.             get => _obj ?? (new LoggerHelper());
  14.             set => _obj = value;
  15.         }
  16.         #region Debug,调试
  17.         public static void Debug(string msg)
  18.         {
  19.             _logger.Debug(msg);
  20.         }
  21.         public void Debug(string msg, Exception err)
  22.         {
  23.             _logger.Debug(err, msg);
  24.         }
  25.         #endregion
  26.         #region Info,信息
  27.         public static void Info(string msg)
  28.         {
  29.             _logger.Info(msg);
  30.         }
  31.         public void Info(string msg, Exception err)
  32.         {
  33.             _logger.Info(err, msg);
  34.         }
  35.         #endregion
  36.         #region Warn,警告
  37.         public static void Warn(string msg)
  38.         {
  39.             _logger.Warn(msg);
  40.         }
  41.         public void Warn(string msg, Exception err)
  42.         {
  43.             _logger.Warn(err, msg);
  44.         }
  45.         #endregion
  46.         #region Trace,追踪
  47.         public void Trace(string msg)
  48.         {
  49.             _logger.Trace(msg);
  50.         }
  51.         public void Trace(string msg, Exception err)
  52.         {
  53.             _logger.Trace(err, msg);
  54.         }
  55.         #endregion
  56.         #region Error,错误
  57.         public void Error(string msg)
  58.         {
  59.             _logger.Error(msg);
  60.         }
  61.         public void Error(string msg, Exception err)
  62.         {
  63.             _logger.Error(err, msg);
  64.         }
  65.         #endregion
  66.         #region Fatal,致命错误
  67.         public void Fatal(string msg)
  68.         {
  69.             _logger.Fatal(msg);
  70.         }
  71.         public void Fatal(string msg, Exception err)
  72.         {
  73.             _logger.Fatal(err, msg);
  74.         }
  75.         #endregion
  76.     }
复制代码
5、调用
在接口或者需要写入日志的地方
  1. LoggerHelper.Info("TEST111111111111111111111111111111111111111111111");
  2.             LoggerHelper.Warn("TEST222222222222222222222222222222222222222222");
复制代码
 
说明:本内容仅仅作为学习记录,无任何商业目的。

来源:https://www.cnblogs.com/hkzw/archive/2023/03/15/17217251.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具