日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

.NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记

發(fā)布時(shí)間:2023/12/4 asp.net 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2.2.2 核心模塊--日志

  • ILogger 的使用

  • 日志的 ID

  • 日志的分類

  • 日志的級(jí)別

  • LoggerProvider

  • 日志的最佳實(shí)踐

.NET Core 和 ASP.NET Core 中的日志記錄:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/logging/?view=aspnetcore-5.0

ILogger 的使用

在 Get 方法中添加日志

WeatherForecastController.cs

private readonly ILogger<WeatherForecastController> _logger;public WeatherForecastController(ILogger<WeatherForecastController> logger) {_logger = logger; }_logger.LogInformation("Get action executed");

日志的 ID

_logger.LogInformation(new EventId(1001, "Action"), "Get action executed");

日志的分類

根據(jù)不同的類名區(qū)分

private readonly ILogger<WeatherForecastController> _logger; private readonly ILogger _myLogger;public WeatherForecastController(ILogger<WeatherForecastController> logger, ILoggerFactory loggerFactory) {_logger = loggerFactory.CreateLogger<WeatherForecastController>();_myLogger = loggerFactory.CreateLogger("MyLogger");// 通過(guò)自己的分類 MyLogger 創(chuàng)建 }

日志的級(jí)別

LogLevelValueMethodDescription推薦使用場(chǎng)景
Trace0LogTrace跟蹤日志:粒度細(xì),非常詳細(xì)跟蹤日志,包括方法的進(jìn)入結(jié)束。一般是用于sdk、或者一些基礎(chǔ)設(shè)施上開(kāi)發(fā)環(huán)境/特殊環(huán)境
Debug1LogDebug調(diào)試日志:記錄一些比較容易出錯(cuò)的一些跟蹤信息開(kāi)發(fā)環(huán)境/特殊環(huán)境
Information2LogInformation信息:生產(chǎn)級(jí)別開(kāi)啟。相對(duì)來(lái)說(shuō)比較重要的節(jié)點(diǎn):比如訂單支付成功、取消成功生產(chǎn)
Warning3LogWarning警告:有一定錯(cuò)誤,但不影響結(jié)果執(zhí)行生產(chǎn)
Error4LogError錯(cuò)誤:導(dǎo)致程序不能正常往下執(zhí)行業(yè)務(wù)的錯(cuò)誤生產(chǎn)
Critical5LogCritical致命:記錄信息要求,系統(tǒng)崩潰生產(chǎn)
None6


LoggerProvider

源碼:https://github.com/aspnet/Logging/tree/master/src/

ILoggerProvider.cs

using System;namespace Microsoft.Extensions.Logging {/// <summary>/// Represents a type that can create instances of <see cref="ILogger"/>./// </summary>public interface ILoggerProvider : IDisposable{/// <summary>/// Creates a new <see cref="ILogger"/> instance./// </summary>/// <param name="categoryName">The category name for messages produced by the logger.</param>/// <returns></returns>ILogger CreateLogger(string categoryName);} }

日志的設(shè)計(jì)模式

支持不同類型的日志輸出,可以自定義一個(gè) LoggerProvider

打印容器中所有注入的 LoggerProvider

Program.cs

var providers = host.Services.GetServices<ILoggerProvider>();// 獲取容器中所有注入的實(shí)例 foreach (var provider in providers) {Console.WriteLine(provider.GetType().ToString()); }

啟動(dòng)程序,輸出如下:

Microsoft.Extensions.Logging.Console.ConsoleLoggerProvider Microsoft.Extensions.Logging.Debug.DebugLoggerProvider Microsoft.Extensions.Logging.EventSource.EventSourceLoggerProvider Microsoft.Extensions.Logging.EventLog.EventLogLoggerProvider

添加,清除

public static IHostBuilder CreateHostBuilder(string[] args) =>Host.CreateDefaultBuilder(args).ConfigureLogging((ctx, logger) =>{//logger.AddProvider();// 添加logger.ClearProviders();// 清除})

日志的最佳實(shí)踐

先注釋清除代碼

//.ConfigureLogging((ctx, logger) => //{ // //logger.AddProvider();// 添加 // logger.ClearProviders();// 清除 //})

在 appsettings.json 調(diào)整日志級(jí)別為 Trace

{"Logging": {"LogLevel": {"Default": "Trace","Microsoft": "Trace","Microsoft.Hosting.Lifetime": "Trace"}} }

在 WeatherForecastController 中添加一個(gè)方法,根據(jù)需求使用日志

public IActionResult CreateOrder(dynamic order) {_logger.LogTrace("Enter CreateOrder method");_logger.LogDebug("Start creating order: {0}", "order info");_logger.LogTrace("Start executing _orderService.Create method");if (order.amount <= 0){_logger.LogWarning("Order Amount is:{0}");}_orderService.Create(order);_logger.LogTrace("Completed executing _orderService.Crete method");_logger.LogTrace("Leave CreateOrder Successfully");_logger.LogInformation("Leave CreateOrder Successfully");return Ok(); }

GitHub源碼鏈接:

https://github.com/MINGSON666/Personal-Learning-Library/tree/main/ArchitectTrainingCamp/HelloApi

課程鏈接

.NET云原生架構(gòu)師訓(xùn)練營(yíng)講什么,怎么講,講多久

歡迎各位讀者加入微信群一起學(xué)習(xí)交流,

在公眾號(hào)后臺(tái)回復(fù)“加群”即可~~

總結(jié)

以上是生活随笔為你收集整理的.NET 云原生架构师训练营(模块二 基础巩固 日志)--学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。