.NET Core 2.0 MVC / Web API使用NLog
阿新 • • 發佈:2018-12-13
.NET Core 2.0 MVC / Web API使用NLog
1. 專案,新增NuGet引用
Install-Package NLog.Web.AspNetCore Install-Package NLog
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" internalLogLevel="off" internalLogFile="Log\internal-nlog.txt"> <!--internalLogLevel設定為off,即關閉內部日誌記錄--> <!-- 啟用asp.net核心佈局渲染器 --> <extensions> <add assembly="NLog.Web.AspNetCore"/> </extensions> <!-- 要寫入的目標 --> <targets> <target xsi:type="File" name="ApiLog" fileName="Log\${shortdate}.log" layout="${longdate} ${level} ${message}"/> </targets> <!-- 從記錄器名稱對映到目標的規則 --> <rules> <!--final="true",不指定writeto,表示跳過所有微軟相關(Microsoft.*)的日誌--> <logger name="Microsoft.*" maxlevel="Info" final="true" /> <!-- 此條表示記錄所有日誌,並且指定最低和最高日誌記錄級別,繫結到target——>ApiLog --> <logger name="*" minlevel="Trace" maxlevel="Fatal" writeTo="ApiLog" /> </rules> </nlog>
建立完畢後,允許nlog.config啟用複製到bin資料夾 ,有兩種方式,經過本人嘗試,建議使用第二種方法,不然Log資料夾會在專案根目錄的同一級資料夾中建立
- 點選nlog.config,右鍵——屬性——複製到輸出目錄——始終複製
- 編輯.csproj檔案,新增以下內容
< ItemGroup > < Content Update = “ nlog.config ” CopyToOutputDirectory = “ PreserveNewest ” /> </ ItemGroup >
3.更新Program.cs檔案,新增對NLog的引用,並設定日誌記錄範圍
public class Program { public static void Main(string[] args) { //NLog: 首先設定記錄器以捕獲所有錯誤 var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger(); BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .ConfigureLogging(logging => { logging.ClearProviders(); logging.SetMinimumLevel(LogLevel.Trace); }) .UseNLog() // NLog: 設定NLog進行依賴注入 .Build(); }
4. 在專案中呼叫
private readonly ILogger<HomeController> _logger; public HomeController(ILogger<HomeController> logger) { _logger = logger; } public IActionResult Index() { _logger.LogInformation("Ha ha,I'm Home Index Page"); return View(); }
5. 到這裡就能在專案的bin\Debug\netcoreapp2.0\Log資料夾下看到你的日誌記錄了