Asp.net core 更改实体框架核心记录的SQL查询的日志记录级别

Asp.net core 更改实体框架核心记录的SQL查询的日志记录级别,asp.net-core,entity-framework-core,Asp.net Core,Entity Framework Core,默认情况下,实体框架核心将所有执行的SQL查询记录到ASP.NET核心记录器(Microsoft.Extensions.Logging)。默认的日志级别是信息性的,但是对于信息性日志来说,它似乎有点健谈。我更喜欢在调试甚至跟踪级别 有没有办法将EFCore配置为在调试(或跟踪)级别而不是信息级别记录这些SQL查询?您可以单独设置Microsoft或系统消息的日志级别 对于EntityFramework聊天日志记录,可以在启动类中设置 services.AddLogging(builder =&g

默认情况下,实体框架核心将所有执行的SQL查询记录到ASP.NET核心记录器(
Microsoft.Extensions.Logging
)。默认的日志级别是信息性的,但是对于信息性日志来说,它似乎有点健谈。我更喜欢在调试甚至跟踪级别


有没有办法将EFCore配置为在调试(或跟踪)级别而不是信息级别记录这些SQL查询?

您可以单独设置Microsoft或系统消息的日志级别

对于EntityFramework聊天日志记录,可以在启动类中设置

services.AddLogging(builder =>
{
    builder.AddFilter("Microsoft", LogLevel.Warning);
    builder.AddFilter("System", LogLevel.Error);
});

由于EntityFrameworkCore3.0,可以更改为SQL查询的日志记录级别。 在到3.0预览期间,所有查询执行日志默认更改为
Debug
。后来,此更改被还原,现在可配置

要执行此操作,请覆盖
DbContext
中的
onconfigurang
,并运行以下代码段:

protectedoverride void onconfiguration(DbContextOptionsBuilder optionsBuilder)
=>optionsBuilder.ConfigureWarnings(c=>c.Log((RelationalEventId.CommandExecuting,LogLevel.Debug));

请参阅:

Hi@nick,您找到解决方案了吗?还没有。抱歉。虽然我仍然不知道如何完成这一点,但应该指出的是,在EFCore 3.0-preview 3中,SQL的默认日志记录级别已从“信息”更改为“调试”。请看:对不起,这不是问题所在。你正在设置一个过滤器。我不想过滤消息,我想更改消息的日志级别。