netcore的NLog使用小記

1. 啓動應用程序日誌配置php

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

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

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

 

2. 新增配置文件nlog.config測試

<?xml version="1.0" encoding="utf-8" ?>ui

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true"> this

  <targets> spa

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

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

      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

 

越努力越幸運,努力須要自制,但願本身可以有更強的自制力!感恩自信自律!

相關文章
相關標籤/搜索