如何在Azure Function中屏蔽EF Core数据库命令日志?
解决EF Core数据库命令日志无法屏蔽的问题
修正host.json的日志级别配置:将EF Core命令日志的级别明确设为
None,这会完全屏蔽该类日志。修改后的logLevel节点如下:"logLevel": { "Default": "Warning", "Function": "Information", "Host.Results": "Information", "Host.Aggregator": "Information", "Microsoft": "Warning", "Microsoft.EntityFrameworkCore.Database.Command": "None" }注意:
None级别会禁止所有该分类下的日志输出,比Warning更彻底,能确保Information级别的数据库命令日志不会被记录。检查代码中EF Core的日志配置:如果在DbContext的
OnConfiguring方法中手动指定了UseLoggerFactory,或者在依赖注入中配置了自定义LoggerFactory,需要同步调整日志过滤规则。例如:// 在DbContext的OnConfiguring中 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { var loggerFactory = LoggerFactory.Create(builder => { builder.AddFilter("Microsoft.EntityFrameworkCore.Database.Command", LogLevel.None); }); optionsBuilder.UseLoggerFactory(loggerFactory); }代码中的日志配置优先级高于host.json的全局配置,必须保持一致才能生效。
验证Application Insights配置:当前你的samplingSettings中
includedTypes设为Trace,如果不需要捕获Trace级日志,可以改为Exception或直接移除该配置项,避免低级别日志被强制采样上报。
内容的提问来源于stack exchange,提问作者JeeShen Lee
相关产品推荐
相关产品推荐

