更改Entity Framework Core记录的SQL查询的日志记录级别

时间:2017-12-19 18:55:32

标签: asp.net-core entity-framework-core

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

有没有办法配置EFCore在Debug(或Trace)级别而不是Informational级别记录这些SQL查询?

2 个答案:

答案 0 :(得分:0)

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

对于EntityFramework健谈日志记录,您可以在启动类中进行设置。

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

答案 1 :(得分:0)

由于Entity Framework Core 3.0,因此可以更改为SQL查询的日志记录级别。 在3.0预览期间,默认情况下,所有查询执行日志记录都更改为Debug。后来,此更改被还原,现在可以配置了。

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

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    => optionsBuilder.ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuting, LogLevel.Debug)));

请参阅:https://docs.microsoft.com/en-us/ef/core/what-is-new/ef-core-3.0/breaking-changes#query-execution-is-logged-at-debug-level-reverted

相关问题