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



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

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

基本上,我想(暂时)记录一些信息而不将 LogLevel 设置为"信息",因为这会记录所有其他不相关的信息消息。

更新 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"
}   
}

然后在我的用户服务中

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");
}       
}

并在程序中.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可以是任何类型 - 一种特殊类型,只是为了指示日志类别或只是你从中记录的类),你可以独立于其他所有内容配置日志级别:

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

相关内容

  • 没有找到相关文章

最新更新