实体框架核心默认情况下将所有已执行的SQL查询记录到ASP.NET核心记录器(Microsoft.Extensions.Logging
)。默认日志级别是信息级别,但对于信息日志记录,我似乎有点讨厌。我更喜欢它在Debug或甚至跟踪级别。
有没有办法配置EFCore在Debug(或Trace)级别而不是Informational级别记录这些SQL查询?
答案 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)));