我正在尝试让 EF Core 停止将 SQL 写入我的日志文件。我正在使用 NLog。我的 appsettings.json 中有以下内容:
"Logging":
{
"LogLevel":
{
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information",
"Microsoft.AspNetCore": "Warning",
"Microsoft.EntityFrameworkCore.Database.Command": "Warning"
}
},
我在创建上下文时尝试设置以下内容:
services.AddDbContext<TContext>(o =>
{
o.UseSqlServer(connectionString);
o.ConfigureWarnings(c => c.Log((RelationalEventId.CommandExecuting, LogLevel.Warning)));
});
我在添加日志记录时尝试了这样的方法:
services.AddLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Trace);
logging.AddConfiguration(configuration.GetSection("Logging"));
logging.AddNLog();
logging.AddFilter("Microsoft", LogLevel.Warning);
});
每次仍然记录日志信息:
2024-11-20 15:13:36.3284||INFO|Microsoft.EntityFrameworkCore.Database.Command|Executed DbCommand (34ms)...
我错过了什么?
您的代码看起来正确;这是我的建议。
appsettings.json
中的配置。为了测试这个,你可以在
services.AddLogging()
中添加以下内容吗?由于此过滤器处于代码级别,因此它应该有助于覆盖 NLog 设置。
logging.AddFilter("Microsoft.EntityFrameworkCore.Database.Command", LogLevel.Warning);
Microsoft.EntityFrameworkCore.Database.Command
指定了更宽松的规则?