Asp.net core 更改实体框架核心记录的SQL查询的日志记录级别
默认情况下,实体框架核心将所有执行的SQL查询记录到ASP.NET核心记录器(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
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的默认日志记录级别已从“信息”更改为“调试”。请看:对不起,这不是问题所在。你正在设置一个过滤器。我不想过滤消息,我想更改消息的日志级别。