netcore的NLog使用小記


1. 啟動應用程序日志配置

修改Program.cs,在WebHostBuilder構建時配置日志

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
  WebHost.CreateDefaultBuilder(args)
  .UseStartup<Startup>()
  .ConfigureLogging(logging =>
  {
    logging.ClearProviders();
    logging.SetMinimumLevel(LogLevel.Information);
    logging.AddConsole();
  }).UseNLog();

其中,UseNLog是拓展方法,需要引入NLog.Web.AspNetCore

 

2. 新增配置文件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" autoReload="true">

  <targets>

    <target name="defaultlog" xsi:type="File" keepFileOpen="false" encoding="utf-8"

      fileName="${basedir}/logs/${level}/${shortdate}.log"

      maxArchiveFiles="100"

      layout="${longdate}|${level:uppercase=true}|${logger}|${message}" />

    <!--fileName值——表示在程序運行目錄,分日志級別按天寫入日志文件-->
    <!--maxArchiveFiles值——日志文件最大數量,超出則刪除最早的文件-->
    <!--layout值——日志內容格式:時間+日志級別+LoggerName+日志內容-->

 

  </targets>

  <rules>

    <!--支持將任意級別、任意LoggerName的日志寫入target:defaultlog-->

    <!--其中*就表示任意,可以改為"項目命名空間.*",則只輸出對應命名空間下的日志。在Info級別尤為明顯-->

    <logger name="*" minlevel="trace" writeTo="defaultlog" />

  </rules>

</nlog>

 

3. 實例化並使用

1)在控制器的構造方法賦值ILogger(親測可用)

  private readonly ILogger<HomeController> _logger;

  public HomeController(ILogger<HomeController> logger)

  { this._logger = logger; }

  _logger.Info("一個Info級別的測試樣例");
  _logger.Error("一個Error級別的測試樣例");

2)直接使用NLog.LogManager(可以忽略第一步)

  //使用GetLogger獲取ILogger(暫無法成功輸出日志到文件)

  //var logger = NLog.LogManager.GetLogger(LoggerName);

  //使用GetCurrentClassLogger獲取ILogger

  var logger = NLog.LogManager.GetCurrentClassLogger();

  logger.Info("一個Info級別的測試樣例");
  logger.Error("一個Error級別的測試樣例");

  其中,LoggerName可以為當前調用的控制器名稱,也可以是當前調用的方法名稱,甚至任意文本。它主要作用是:顯示在文件中,方便查看報錯位置

 

本文學習自:

https://www.cnblogs.com/lonelyxmas/p/10669153.html

 

越努力越幸運,努力需要自制,希望自己能夠有更強的自制力!感恩自信自律!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM