Microsoft.Extensions.Logging 中是否可以使用强制日志记录

Is force logging available in Microsoft.Extensions.Logging

我有 ASP.NET 核心应用程序。我正在使用 Microsoft.Extensions.Logging.ILogger 接口与 Serilog 日志提供程序。
在生产环境中,日志级别设置为Error。所以低于 Error 日志级别的任何内容都不会被记录。

Microsoft.Extensions.Logging 中是否有 Force 可用的日志记录,无论日志级别设置如何,它都会记录消息?

基本上我想在不将 LogLevel 设置为 Information 的情况下(暂时)记录一些信息,因为那样会记录所有其他不相关的信息消息。

更新 1
所以我根据建议更新了我的 appsettings.json,但是没有用。请注意,serilog 也有自己的日志级别,我已将其注释掉。但还是不行。

"Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Error",
      "MyUserService": "Information"
    }   
 },   
 "Serilog": {
    "Using": [ "Serilog.Sinks.MSSqlServer" ],
    //"MinimumLevel": "Error",
    "WriteTo": [
      {
        "Name": "MSSqlServer",
        "Args": {
          //"restrictedToMinimumLevel": "Error",
          "connectionString": "Data Source=.\SQLExpress;Initial Catalog=MyDataBase;Integrated Security=True;MultipleActiveResultSets=True",
          "tableName": "Logs"
        }
      }
    ],
    "Properties": {
      "Application": "MyApplication"
    }   
}

然后在 MyUserService

public class MyUserService : BaseService, IMyUserService
{

    private readonly ILogger<MyUserService> _logger;

    public MyUserService(MyDBContext dbContext, ILogger<MyUserService> logger)
        : base(dbContext)
    {            
        _logger = logger;
    }

    public async Task DoSomethig()
    {       
       _logger.LogInformation("Log something meaningful here");
    }       
 }

并在 program.cs

     public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseApplicationInsights()
        .UseUrls("http://*:40006")
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            //removed for brevity
        })
        .ConfigureLogging((hostingContext, logging) =>
        {         
            Log.Logger = new LoggerConfiguration()
            .ReadFrom.Configuration(hostingContext.Configuration)
            .CreateLogger();

            logging.AddSerilog();         
        })
        .Build();

想法是配置每个日志类别的日志级别。

一旦你让自己注入一个 ILogger<MyCategory>(其中 MyCategory 可以是任何类型 - 一种特殊类型只是为了指示日志类别或只是你登录的 class),你可以独立于其他一切配置日志级别:

"Logging": {
  "LogLevel": {
    "Default": "Error",
    "MyCategory": "Information"
  }
}