国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ASP.NET Core MVC 從入門到精通之日志管理

這篇具有很好參考價值的文章主要介紹了ASP.NET Core MVC 從入門到精通之日志管理。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。

經(jīng)過前幾篇文章的講解,初步了解ASP.NET Core MVC項目創(chuàng)建,啟動運(yùn)行,以及命名約定,創(chuàng)建控制器,視圖,模型,接收參數(shù),傳遞數(shù)據(jù)ViewData,ViewBag,路由,頁面布局,wwwroot和客戶端庫,Razor語法,EnityFrameworkCore與數(shù)據(jù)庫,HttpContext,Request,Response,Session,序列化,文件上傳,自動映射,Html輔助標(biāo)簽,模型校驗,鑒權(quán)、授權(quán)基礎(chǔ),Identity入門等內(nèi)容,今天繼續(xù)講解ASP.NET Core MVC 中日志等相關(guān)內(nèi)容,僅供學(xué)習(xí)分享使用。

ASP.NET Core MVC 從入門到精通之日志管理

在實(shí)際系統(tǒng)開發(fā)中,日志管理是非常重要的一個模塊,完整的日志可以方便問題的跟蹤定位,可以快速的發(fā)現(xiàn)并解決問題。今天以一個簡單的小例子,簡述日志組件NLog的基礎(chǔ)用法。

安裝NLog組件庫

首先通過Nuget包管理器,安裝NLog對應(yīng)的日志組件【NLog和NLog.Web.AspNetCore】,如下所示:

ASP.NET Core MVC 從入門到精通之日志管理

添加配置文件

在應(yīng)用程序中添加NLog配置文件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-AspNetCore.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         <!-- File Target for all log messages with basic details -->
16         <target xsi:type="File" name="allfile" fileName="c:\temp\nlog-AspNetCore-all-${shortdate}.log"
17                 layout="${longdate}|${event-properties:item=EventId:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}" />
18 
19         <!-- File Target for own log messages with extra web details using some ASP.NET core renderers -->
20         <target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-AspNetCore-own-${shortdate}.log"
21                 layout="${longdate}|${event-properties:item=EventId:whenEmpty=0}|${level:uppercase=true}|${logger}|${message} ${exception:format=tostring}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />
22 
23         <!--Console Target for hosting lifetime messages to improve Docker / Visual Studio startup detection -->
24         <target xsi:type="Console" name="lifetimeConsole" layout="${MicrosoftConsoleLayout}" />
25     </targets>
26 
27     <!-- rules to map from logger name to target -->
28     <rules>
29         <!--All logs, including from Microsoft-->
30         <logger name="*" minlevel="Trace" writeTo="allfile" />
31 
32         <!--Output hosting lifetime messages to console target for faster startup detection -->
33         <logger name="Microsoft.Hosting.Lifetime" minlevel="Info" writeTo="lifetimeConsole, ownFile-web" final="true" />
34 
35         <!--Skip non-critical Microsoft logs and so log only own logs (BlackHole) -->
36         <logger name="Microsoft.*" maxlevel="Info" final="true" />
37         <logger name="System.Net.Http.*" maxlevel="Info" final="true" />
38 
39         <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
40     </rules>
41 </nlog>

關(guān)于日志組件配置說明,可參考官方文件:https://github.com/NLog/NLog/wiki/Configuration-file

注入日志服務(wù)

在啟動程序Program.cs中,添加日志組件服務(wù),如下所示:

1 // NLog: Setup NLog for Dependency injection
2 builder.Logging.ClearProviders();
3 builder.Host.UseNLog();

日志過濾器

在創(chuàng)建項目時,默認(rèn)在appsettings.json創(chuàng)建日志配置。如下所示:

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*"
}

輸出日志

在控制器中輸出日志,需要用到ILogger<T>接口,可通過注入的方式實(shí)現(xiàn),如下所示:

 1 using DemoCoreMVC.Models;
 2 using Microsoft.AspNetCore.Authorization;
 3 using Microsoft.AspNetCore.Mvc;
 4 using System.Diagnostics;
 5 
 6 namespace DemoCoreMVC.Controllers
 7 {
 8     public class HomeController : Controller
 9     {
10         private readonly ILogger<HomeController> _logger;
11 
12         public HomeController(ILogger<HomeController> logger)
13         {
14             _logger = logger;
15         }
16 
17         public IActionResult Index()
18         {
19             _logger.LogInformation("Hello, 這是首頁!");
20             return View();
21         }
22 
23 
24     }
25 }

日志查看

查看日志,通過打開日志配置文件nlog.config中配置的路徑,生成了兩個對應(yīng)的日志,如下所示:

ASP.NET Core MVC 從入門到精通之日志管理

nlog-AspNetCore-all-2023-06-18.log中的日志比較全,包含很多程序內(nèi)部日志。

nlog-AspNetCore-own-2023-06-18.log中的日志比較簡約,如下所示:

ASP.NET Core MVC 從入門到精通之日志管理

日志級別

在ASP.NET Core中,日志級別共幾種,分別如下所示:

下表列出了?LogLevel?值、方便的?Log{LogLevel}?擴(kuò)展方法以及建議的用法:

ASP.NET Core MVC 從入門到精通之日志管理

?在上表中,LogLevel?按嚴(yán)重性由低到高的順序列出。

修改配置級別

在實(shí)際生產(chǎn)程序中,一般日志并不輸出Trace級別的日志,Debug也是在調(diào)試開發(fā)時才用。默認(rèn)情況下,生成的nlog-AspNetCore-all-2023-06-18.log會比較大,則可以通過參數(shù)配置來修改。

設(shè)置值minlevel="Info",則不會輸出Tracle和Debug級別的程序,如下所示:

 1 <!-- rules to map from logger name to target -->
 2 <rules>
 3     <!--All logs, including from Microsoft-->
 4     <logger name="*" minlevel="Info" writeTo="allfile" />
 5 
 6     <!--Output hosting lifetime messages to console target for faster startup detection -->
 7     <logger name="Microsoft.Hosting.Lifetime" minlevel="Info" writeTo="lifetimeConsole, ownFile-web" final="true" />
 8 
 9     <!--Skip non-critical Microsoft logs and so log only own logs (BlackHole) -->
10     <logger name="Microsoft.*" minlevel="Info" final="true" />
11     <logger name="System.Net.Http.*" minlevel="Info" final="true" />
12 
13     <logger name="*" minlevel="Info" writeTo="ownFile-web" />
14 </rules>

通過設(shè)置后,生成的日志文件將會精簡很多,如下所示:

ASP.NET Core MVC 從入門到精通之日志管理

日志輸出目標(biāo)

日志不僅可以輸出到控制臺,也可以輸出到文件,或者其他媒介。

日志輸出目標(biāo)可通過targets進(jìn)行配置。日志可以配置多個輸出目標(biāo),通過target進(jìn)行配置。

如下所示:

  • name? 輸出目標(biāo)名稱

  • type? 輸出目標(biāo)類型,如: "File", "Database", "Mail","Console". 用?xsi:type.表示

  • layout 輸出格式

如輸出到控制臺,如通過如下配置:

1 <target xsi:type="Console" name="lifetimeConsole" layout="${MicrosoftConsoleLayout}" />

設(shè)置后,即可輸出到控制臺,如下所示:

ASP.NET Core MVC 從入門到精通之日志管理

?以上就是ASP.NET Core MVC從入門到精通之日志管理的全部內(nèi)容。文章來源地址http://www.zghlxwxcb.cn/news/detail-490863.html

到了這里,關(guān)于ASP.NET Core MVC 從入門到精通之日志管理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ASP.NET Core MVC 從入門到精通之HttpContext

    ASP.NET Core MVC 從入門到精通之HttpContext

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月02日
    瀏覽(23)
  • ASP.NET Core MVC 從入門到精通之文件上傳

    ASP.NET Core MVC 從入門到精通之文件上傳

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月03日
    瀏覽(21)
  • ASP.NET Core MVC 從入門到精通之Filter

    ASP.NET Core MVC 從入門到精通之Filter

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月09日
    瀏覽(23)
  • ASP.NET Core MVC 從入門到精通之?dāng)?shù)據(jù)庫

    ASP.NET Core MVC 從入門到精通之?dāng)?shù)據(jù)庫

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2023年04月27日
    瀏覽(25)
  • ASP.NET Core MVC 從入門到精通之序列化

    ASP.NET Core MVC 從入門到精通之序列化

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月03日
    瀏覽(30)
  • ASP.NET Core MVC 從入門到精通之Razor語法

    ASP.NET Core MVC 從入門到精通之Razor語法

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2023年04月23日
    瀏覽(31)
  • ASP.NET Core MVC 從入門到精通之自動映射(二)

    ASP.NET Core MVC 從入門到精通之自動映射(二)

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月07日
    瀏覽(26)
  • ASP.NET Core MVC 從入門到精通之自動映射(一)

    ASP.NET Core MVC 從入門到精通之自動映射(一)

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 經(jīng)過前幾篇文章的講解,初步

    2024年02月07日
    瀏覽(31)
  • ASP.NET Core MVC 從入門到精通之接化發(fā)(二)

    ASP.NET Core MVC 從入門到精通之接化發(fā)(二)

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。?經(jīng)過前兩篇文章的講解,初步

    2023年04月10日
    瀏覽(23)
  • ASP.NET Core MVC 從入門到精通之接化發(fā)(一)

    ASP.NET Core MVC 從入門到精通之接化發(fā)(一)

    隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。 ? 經(jīng)過前一篇文章的講解,初

    2023年04月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包