一、.net core配置使用Nlog日志
1. nlog介紹:NLog((http://www.nlog-project.org)是一個基於.NET平台編寫的類庫,我們可以使用NLog在應用程序中添加極為完善的跟蹤調試代碼。NLog完全實現了我們上面的期望目標,並且還遠遠不止這些……
NLog允許我們自定義從跟蹤消息的來源(source)到記錄跟蹤信息的目標(target)的規則(rules)。記錄跟蹤信息的目標(target)可以為如下幾種形式:
- 文件
- 文本控制台
- 數據庫
- 網絡中的其它計算機(通過TCP或UDP)
- 基於MSMQ的消息隊列
2. core中使用nlog日志記錄:添加引用nlog.config和Nlog.Web.AspNetCore。
3. 修改配置program
1 public class Program 2 { 3 public static void Main(string[] args) 4 { 5 CreateHostBuilder(args).Build().Run(); 6 7 var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger(); 8 try 9 { 10 logger.Debug("init main"); 11 CreateHostBuilder(args).Build().Run(); 12 } 13 catch (Exception exception) 14 { 15 //NLog: catch setup errors 16 logger.Error(exception, "Stopped program because of exception"); 17 throw; 18 } 19 finally 20 { 21 // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) 22 NLog.LogManager.Shutdown(); 23 } 24 } 25 26 public static IHostBuilder CreateHostBuilder(string[] args) => 27 Host.CreateDefaultBuilder(args) 28 .ConfigureWebHostDefaults(webBuilder => 29 { 30 webBuilder.UseStartup<Startup>(); 31 }).ConfigureLogging(logging => 32 { 33 logging.ClearProviders(); // 這個方法會清空所有控制台的輸出 34 logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace); 35 }) 36 .UseNLog(); // 使用NLog; 37 }
4. 修改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 xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"> 5 <targets> 6 <target xsi:type="File" name="LogFile" fileName="${basedir}/logs/${shortdate}.log" 7 layout="${longdate} ${uppercase:${level}} ${message}" /> 8 </targets> 9 10 <rules> 11 <logger name="*" minlevel="Debug" writeTo="LogFile" /> 12 </rules> 13 </nlog>
5. 使用日志:
注入: private readonly ILogger<WeatherForecastController> _logger; 使用: _logger.LogError("報錯了");
謝謝學習,轉發請標明出處!https://www.cnblogs.com/wangjinya/p/12935564.html