You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EF Core无法查看查询日志?Serilog配置问题求助

解决EF Core SQL日志无法通过Serilog打印的问题
  • 精准指定EF Core日志分类的级别
    当前配置仅全局覆盖了Microsoft的日志级别,但EF Core的SQL执行日志归属更具体的Microsoft.EntityFrameworkCore.Database.Command分类,需要单独配置:

    var host = Host.CreateDefaultBuilder()
        .ConfigureServices((context, collection) => ServerServiceCollection.AddServices(collection, context.Configuration))
        .UseSerilog((hostContext, _, logger) => 
            logger.ReadFrom.Configuration(hostContext.Configuration)
                .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) // 全局Microsoft类日志设为Warning减少冗余
                .MinimumLevel.Override("Microsoft.EntityFrameworkCore.Database.Command", LogEventLevel.Information)) // 单独开启SQL执行日志级别
        .Build();
    

    注:Information级别已足够捕获EF Core的SQL执行日志,无需使用Verbose(会输出大量冗余调试信息)。

  • 检查Serilog配置文件的输出规则
    确保appsettings.json中的Serilog配置包含正确的输出模板,且未过滤目标日志:

    "Serilog": {
      "WriteTo": [
        {
          "Name": "Console",
          "Args": {
            "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}"
          }
        }
      ],
      "MinimumLevel": {
        "Default": "Information",
        "Override": {
          "Microsoft": "Warning",
          "Microsoft.EntityFrameworkCore.Database.Command": "Information"
        }
      }
    }
    

    建议将代码中的日志级别配置与配置文件统一,避免规则冲突。

  • 确认EF Core上下文未禁用日志
    检查DbContext的配置代码,确保未调用禁用日志的方法:

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        // 确保没有调用DisableLogging()
        optionsBuilder.UseSqlServer("your_connection_string");
    }
    

    若通过DI注册DbContext,同样要确保未禁用日志:

    services.AddDbContext<YourDbContext>(options => 
        options.UseSqlServer(configuration.GetConnectionString("Default")));
    
  • 验证日志输出目标有效性
    确认Serilog的输出目标(如控制台、文件等)正常工作,排查是否存在日志已生成但未输出到指定位置的情况(比如文件输出路径错误、权限不足)。

内容的提问来源于stack exchange,提问作者user5405648

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 11:52:18