成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一篇關于NLog-ASP.NET Core 5入門

開發 后端
如果刪除所有其他LoggingProviders(如控制臺)并且僅使用NLog,則可能必須特別注意Hosting Lifetime Startup Messages。因為這可能導致托管環境(Visual Studio / Docker / Azure容器)看不到已啟動的應用程序。

[[402836]]

本文轉載自微信公眾號「后端Q」,作者conan。轉載本文請聯系后端Q公眾號。

1、創建一個新的ASP.NET Core項目

在Visual Studio 2019中。需要版本16.8+

2、手動或使用NuGet在csproj中添加依賴項

安裝最新版本:

  • NLog.Web.AspNetCore 4.9+
  • 如有可能,更新NLog軟件包

在csproj中:

  1. <ItemGroup> 
  2.   <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" /> 
  3.   <PackageReference Include="NLog" Version="4.7.6" /> 
  4. </ItemGroup> 

 

3、創建一個nlog.config文件。

在項目的根目錄中創建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.       autoReload="true" 
  5.       internalLogLevel="Info" 
  6.       internalLogFile="c:\temp\internal-nlog.txt"
  7.  
  8.   <!-- enable asp.net core layout renderers --> 
  9.   <extensions> 
  10.     <add assembly="NLog.Web.AspNetCore"/> 
  11.   </extensions> 
  12.  
  13.   <!-- the targets to write to --> 
  14.   <targets> 
  15.     <!-- write logs to file  --> 
  16.     <target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log" 
  17.             layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}" /> 
  18.  
  19.     <!-- another file log, only own logs. Uses some ASP.NET core renderers --> 
  20.     <target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log" 
  21.             layout="${longdate}|${event-properties:item=EventId_Id}|${uppercase:${level}}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" /> 
  22.   </targets> 
  23.  
  24.   <!-- rules to map from logger name to target --> 
  25.   <rules> 
  26.     <!--All logs, including from Microsoft--> 
  27.     <logger name="*" minlevel="Trace" writeTo="allfile" /> 
  28.  
  29.     <!--Skip non-critical Microsoft logs and so log only own logs--> 
  30.     <logger name="Microsoft.*" maxlevel="Info" final="true" /> <!-- BlackHole without writeTo --> 
  31.     <logger name="System.Net.Http.*" maxlevel="Info" final="true" /> <!-- BlackHole without writeTo --> 
  32.  
  33.     <logger name="*" minlevel="Trace" writeTo="ownFile-web" /> 
  34.   </rules> 
  35. </nlog> 

 

 

 

請注意,如果刪除所有其他LoggingProviders(如控制臺)并且僅使用NLog,則可能必須特別注意Hosting Lifetime Startup Messages。因為這可能導致托管環境(Visual Studio / Docker / Azure容器)看不到已啟動的應用程序。

4、更新program.cs

更新program.cs

  1. using Microsoft.AspNetCore.Hosting; 
  2. using Microsoft.Extensions.Hosting; 
  3. using Microsoft.Extensions.Logging; 
  4. using System; 
  5. using NLog.Web; 
  6.  
  7. namespace ASP.NET_Core_5_NLog_Example 
  8.     public class Program 
  9.     { 
  10.         public static void Main(string[] args) 
  11.         { 
  12.             var logger = NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger(); 
  13.             try 
  14.             { 
  15.                 logger.Debug("init main"); 
  16.                 CreateHostBuilder(args).Build().Run(); 
  17.             } 
  18.             catch (Exception exception) 
  19.             { 
  20.                 //NLog: catch setup errors 
  21.                 logger.Error(exception, "Stopped program because of exception"); 
  22.                 throw; 
  23.             } 
  24.             finally 
  25.             { 
  26.                 // Ensure to flush and stop internal timers/threads before application-exit (Avoid segmentation fault on Linux) 
  27.                 NLog.LogManager.Shutdown(); 
  28.             } 
  29.         } 
  30.  
  31.         public static IHostBuilder CreateHostBuilder(string[] args) => 
  32.             Host.CreateDefaultBuilder(args) 
  33.                 .ConfigureWebHostDefaults(webBuilder => 
  34.                 { 
  35.                     webBuilder.UseStartup<Startup>(); 
  36.                 }) 
  37.                 .ConfigureLogging(logging => 
  38.                 { 
  39.                     logging.ClearProviders(); 
  40.                     logging.SetMinimumLevel(LogLevel.Trace); 
  41.                 }) 
  42.                 .UseNLog();  // NLog: Setup NLog for Dependency injection 
  43.     } 

5、配置appsettings.json / appsettings.Development.json

中指定的日志記錄配置appsettings.json會覆蓋對的任何調用SetMinimumLevel。因此"Default":,請根據您的需要刪除或正確調整它。

  1.   "Logging": { 
  2.     "IncludeScopes"false
  3.     "LogLevel": { 
  4.       "Default""Trace"
  5.       "Microsoft""Warning"
  6.       "Microsoft.Hosting.Lifetime""Information" 
  7.     } 
  8.   }, 
  9.   "AllowedHosts""*" 

切記還要更新任何特定于環境的配置,以免引起任何意外。前任appsettings.Development.json

6、寫日志

將ILogger注入您的控制器中:

  1. using Microsoft.Extensions.Logging; 
  2.  
  3. public class HomeController : Controller 
  4.     private readonly ILogger<HomeController> _logger; 
  5.  
  6.     public HomeController(ILogger<HomeController> logger) 
  7.     { 
  8.         _logger = logger; 
  9.         _logger.LogDebug(1, "NLog injected into HomeController"); 
  10.     } 
  11.  
  12.     public IActionResult Index() 
  13.     { 
  14.         _logger.LogInformation("Hello, this is the index!"); 
  15.         return View(); 
  16.     } 

7、示例輸出

啟動ASP.NET Core網站時,我們得到兩個文件:

  1. 2020-12-29 16:47:02.5291||DEBUG|ASP.NET_Core_5_NLog_Example.Program|init main |url: |action:  
  2. 2020-12-29 16:47:03.5943|1|DEBUG|ASP.NET_Core_5_NLog_Example.Controllers.HomeController|NLog injected into HomeController |url: https://localhost/|actionIndex 
  3. 2020-12-29 16:47:03.5943||INFO|ASP.NET_Core_5_NLog_Example.Controllers.HomeController|Hello, this is the index! |url: https://localhost/|actionIndex 
  1. 2020-12-29 16:47:02.5291||DEBUG|ASP.NET_Core_5_NLog_Example.Program|init main  
  2. 2020-12-29 16:47:03.5260||INFO|Microsoft.Hosting.Lifetime|Application started. Press Ctrl+C to shut down.  
  3. 2020-12-29 16:47:03.5260||INFO|Microsoft.Hosting.Lifetime|Hosting environment: Development  
  4. 2020-12-29 16:47:03.5260||INFO|Microsoft.Hosting.Lifetime|Content root path: D:\nlog\NLog.Web\examples\ASP.NET Core 5\ASP.NET Core 5 NLog Example  
  5. 2020-12-29 16:47:03.5943|1|DEBUG|ASP.NET_Core_5_NLog_Example.Controllers.HomeController|NLog injected into HomeController  
  6. 2020-12-29 16:47:03.5943||INFO|ASP.NET_Core_5_NLog_Example.Controllers.HomeController|Hello, this is the index

 

責任編輯:武曉燕 來源: 后端Q
相關推薦

2021-07-12 10:36:36

Blazor組件入門

2021-01-04 05:44:54

框架日志

2023-04-20 08:00:00

ES搜索引擎MySQL

2021-09-15 19:05:16

數據開源項目

2015-01-07 09:32:50

ASP.NET MVC路由

2021-03-18 07:33:54

PDF DinkToPdfC++

2021-10-11 11:08:33

HDFS快照系統

2022-11-08 10:52:25

Flowable節點表單

2022-07-06 07:57:37

Zookeeper分布式服務框架

2022-02-21 09:44:45

Git開源分布式

2021-01-28 08:55:48

Elasticsear數據庫數據存儲

2022-08-26 10:32:21

MongoDB數據庫

2021-07-21 09:48:20

etcd-wal模塊解析數據庫

2024-11-04 08:54:30

2021-03-08 00:09:47

日志分布式管理

2021-05-14 16:34:12

Semaphore原理

2024-12-04 08:17:49

日志框架NLog

2021-08-27 07:47:06

SQL靜態程序

2022-05-08 19:58:10

JSONPJavaScript

2021-09-05 07:55:36

Lsm核心實現
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线中文字幕 | 成人av免费| 中文字幕在线中文 | 欧美日韩一区在线观看 | 伊人伊人 | 国产成人免费在线 | 精品在线播放 | 欧日韩不卡在线视频 | 亚洲经典一区 | 国产精品久久精品 | 日韩精品中文字幕在线 | 日韩精品一区二区在线 | 亚洲国产一区在线 | 伊人二区 | 欧美成人精品一区二区男人看 | 嫩草研究影院 | 中文在线a在线 | 国产女人与拘做受免费视频 | 在线不卡一区 | 国产特一级黄色片 | 亚洲成人精品免费 | 男人亚洲天堂 | 国产精品999| 久久男女视频 | 久久亚洲天堂 | 看片91| 成人av免费在线观看 | 亚洲一区 | 免费成人高清在线视频 | 欧美激情亚洲激情 | 国产 日韩 欧美 在线 | 国产情品 | 欧美三级免费观看 | 一区二区三区在线 | 午夜在线| 国内自拍偷拍 | 欧美精品久久久久久 | 日韩中文字幕在线观看视频 | 日韩一级免费电影 | 亚洲三区在线观看 | 国产精品99一区二区 |