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
越努力越幸運,努力須要自制,但願本身可以有更強的自制力!感恩自信自律!