抑制 EF 核心 3.0.x 初始化消息

Suppress EF core 3.0.x initialized msg

我有:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
{
  string connectionString = "mydb.db;";
  optionsBuilder
  .UseLoggerFactory(MainWorker.ConsoleLoggerFactory)
  .EnableSensitiveDataLogging(true)
  .UseSqlite(connectionString);
}

每当我访问我的 DBContext 时,控制台都会显示

info: Microsoft.EntityFrameworkCore.Infrastructure[10403] Entity Framework Core 3.0.0-preview4.19176.6 initialized

有没有办法过滤掉这条特定的消息?因为我做了很多查询,所以它只会让我的控制台调试变得混乱 window ..

EF Core 特定的日志消息是通过 DbContextOptionsBuilder.ConfigureWarnings 方法配置的(是的,名称有点误导)。

相关邮件的 EventIdCoreEventId.ContextInitialized。然后使用 Ignore:

抑制它
optionsBuilder.ConfigureWarnings(warnings => warnings
    .Ignore(CoreEventId.ContextInitialized));

当然可以与其他 optionsBuilder 调用链接。此外,您可能希望使用 CoreEventId.ContextDisposed.

来抑制第二个与上下文生命周期相关的日志消息