gpt4 book ai didi

logging - 为什么 asp.net core 日志记录不按开头的类别进行过滤?

转载 作者:行者123 更新时间:2023-12-04 16:08:28 27 4
gpt4 key购买 nike

我正在使用 EF Core,它在应用程序启动时记录了很多我想过滤掉的“信息”级消息。 docs暗示指定类别的过滤规则应匹配以该类别开头的所有类别(即 "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 Core 模板已经带有 appsettings.jsonappsettings.Development.json。后一个文件是特定于环境的文件,如果您在 Development 模式下运行,它将在默认值之上应用。

您是正确的,配置键 "Microsoft" 将应用于所有 Microsoft.* 命名空间。但前提是没有更具体的配置,即最具体的配置将获胜。

默认的开发设置文件会将 Microsoft 前缀设置为 Information,并将默认设置为 Debug。这将覆盖您在 appsettings.json 中指定的内容,因此 Microsoft 的有效级别仍将是默认的 Information。只有当您使用更具体的命名空间时,您才能覆盖开发设置配置中的设置。

最后,您应该确保您正在编辑正确的文件。 appsettings.json 应包含适用于任何 环境的配置。这些基本上应该是生产默认值。 appsettings.Development.json 仅在开发期间需要不同的配置时才应使用。所以您可能想在此处编辑它。

关于logging - 为什么 asp.net core 日志记录不按开头的类别进行过滤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47381545/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com