我有:
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
有没有办法过滤掉这条特定的消息?因为我做了很多查询,所以它只会弄乱我的控制台调试窗口..
最佳答案
EF Core 特定日志消息通过 DbContextOptionsBuilder.ConfigureWarnings 配置方法(是的,这个名字有点误导)。
相关消息的 EventId
是 CoreEventId.ContextInitialized
。然后使用 Ignore
抑制它:
optionsBuilder.ConfigureWarnings(warnings => warnings
.Ignore(CoreEventId.ContextInitialized));
当然,它可以与其他 optionsBuilder
调用链接在一起。此外,您可能希望使用 CoreEventId.ContextDisposed
抑制第二个与上下文生命周期相关的日志消息。
关于c# - 抑制 EF 核心 3.0.x 初始化消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56419481/