.NET6之MiniAPI(八):日志

说明:本篇简单说一下日志中常用的几个点,关于日志,后面重点会说到三方日志提供程序

在MiniAPI中,可以通过方法或构造函数中,获取框架自动注入的日志类型,如下方式:

app.MapGet("/test", (ILogger<Program> logger) =>
{
    logger.LogInformation(new EventId(1234), "Information");
    return "ok";
});
public class LogDemoService
{
    private readonly ILogger<LogDemoService> _logger;
    public LogDemoService(ILogger<LogDemoService> logger)
    {
        _logger = logger;
    }


    public void Demo01()
    {
        _logger.LogInformation("demo01");
    }
}

日志的级别:

public enum LogLevel
    {
        Trace, 
        Debug,
        Information,
        Warning,
        Error,
        Critical,
        None
    }

Trace = 0、Debug = 1、Information = 2、Warning = 3、Error = 4、Critical = 5 和 None = 6。日志级别对应的方法:LogTrace(),LogDebug(),LogInformation(),LogWarning(),LogError(),LogCritical()。


日志配置:

当ASPNETCORE_ENVIRONMENT环境变量配置不同时,asp.net core会读取不同的配置文件,当在vs中进行开发时,通常这个变量值为Development,开发环境下的日志配置,appsettings.Development.json

"Logging": {
    "LogLevel": {
      "Default": "Debug",
      "Microsoft.AspNetCore": "Warning"
    }

生产环境下的日志配置,appsettings.json

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

Logging下的第一级通常是日志提供程序,内置的提供程序有

  • 控制台

  • 调试

  • EventSource

  • EventLog

  • AzureAppServicesFile

  • AzureAppServicesBlob

  • ApplicationInsights

比如控制台提供程序配置如下,IncludeScopes是否日志在输出时带有作用域信息,LogLevel是不同类别的日志输出级别,比如默认的是Information和以上的级别才会输出到控件台上,Microsoft.AspNetCore是警告级别和以上的才会输出,而我自定义的MiniAPICourse.Sevices是Debug和以上的级别都会输出,利用这个设置可以重点输出自己开发功能的低级别日志。

"Logging": {
    "Console": {
      "IncludeScopes": true,
      "LogLevel": {
        "Microsoft.AspNetCore": "Warning",
        "Default": "Information",
        "MiniAPICourse.Services": "Debug"      
      }
    }
  }

如果在日志配置中直接写LogLevel,则应用到所有日志提供程序,如appsettings.Development.json和appsettings.json中的写法。


日志类别:

在从服务容器获取日志时,要带上当前所在的类名,如LogDemoService,就是当前日志的类别,所有使用这个_logger的输出,都带有这个类型的名称。

private readonly ILogger<LogDemoService> _logger;

ed06de6e87ab57544e829667af86ef19.png

关于上图中类型后面的[0],就是日志事件ID,可以输出日志是填上。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值