Logging 为什么asp.net核心日志记录不按以开头的类别进行筛选?
我使用的是EF Core,它在应用程序启动时记录了很多我想过滤掉的“信息”级别的消息。这意味着指定类别的筛选规则应匹配从该类别开始的所有类别(即Logging 为什么asp.net核心日志记录不按以开头的类别进行筛选?,logging,asp.net-core,entity-framework-core,Logging,Asp.net Core,Entity Framework Core,我使用的是EF Core,它在应用程序启动时记录了很多我想过滤掉的“信息”级别的消息。这意味着指定类别的筛选规则应匹配从该类别开始的所有类别(即“Microsoft”匹配“Microsoft*”) 我的应用程序通过CreateDefaultWebBuilder具有默认的日志设置,因此我在我的appsettings.json中放置了以下内容: "Logging": { "IncludeScopes": false, "LogLevel": { "Default":
“Microsoft”
匹配“Microsoft*”
)
我的应用程序通过CreateDefaultWebBuilder
具有默认的日志设置,因此我在我的appsettings.json
中放置了以下内容:
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning",
"Microsoft": "Warning"
}
}
与我的预期相反,这没有起作用。然而,以下情况确实发生了:
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning",
"Microsoft.EntityFrameworkCore.Migrations": "Warning",
"Microsoft.EntityFrameworkCore.Database.Command": "Warning",
"Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager": "Warning",
"Microsoft.EntityFrameworkCore.Infrastructure": "Warning"
}
}
我做错了什么?当然我不需要明确列出每个类别?默认的ASP.NET核心模板已经附带了
appsettings.json
和appsettings.Development.json
。后一个文件是特定于环境的文件,如果您在开发
模式下运行,它将应用于默认文件之上
配置密钥“Microsoft”
将应用于所有Microsoft.
名称空间,这是正确的。但前提是没有更具体的配置,即最具体的配置将获胜
默认开发设置文件将Microsoft
前缀设置为Information
,默认设置为Debug
。这将覆盖您在appsettings.json
中指定的内容,因此Microsoft
的有效级别仍然是默认的信息。只有在使用更特定的名称空间时,才能从“开发设置”配置覆盖该设置
最后,您应该确保您正在编辑正确的文件appsettings.json
应包含适用于任何环境的配置。这些基本上应该是生产默认值。当您仅在开发过程中需要不同的配置时,应该使用appsettings.Development.json
。因此,您可能希望在此处编辑此内容。请检查,您是否正在运行Development
,并且您还有一个appsettings.Development.json
?谢谢。你一针见血。我知道,它有“微软”:“信息”
。我换错了文件。