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

.NET 6中Serilog生成空文件问题求助

Serilog日志文件为空的问题排查与修复

核心错误点

  • Sink添加时机错误:你在创建Log.Logger实例后,才给LoggerConfiguration追加WriteTo.File和WriteTo.Console配置,但已创建的Log.Logger不会同步后续的配置修改,导致日志没有输出到目标文件。
  • 配置文件JSON不完整:提供的Serilog配置缺少闭合的大括号,会导致配置读取失败,示例配置应补充完整结构。
  • 主机初始化与Logger赋值顺序颠倒:构建AspNetHost时调用UseSerilog(),但此时Log.Logger尚未初始化,主机可能使用默认配置而非自定义的Logger实例。

修正后的配置文件

{
  "Serilog": {
    "MinimumLevel": {
      "Default": "Verbose",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    }
  }
}

修正后的代码

' 构建配置实例
Dim config = builder.Build()

' 先完成LoggerConfiguration的所有配置(包含Sink)
Dim LoggerConfiguration = New LoggerConfiguration().
    ReadFrom.Configuration(config).
    Enrich.FromLogContext().
    WriteTo.File("test.txt").
    WriteTo.Console()

' 初始化全局Log.Logger
Log.Logger = LoggerConfiguration.CreateLogger()

' 再构建主机,确保UseSerilog()使用已配置好的Logger
Dim AspNetHost = Host.CreateDefaultBuilder().
    ConfigureServices(Sub(X, Y)
                          ConfigureDI(X, Y)
                      End Sub).
    UseSerilog().
    Build()

' 输出日志,此时会写入文件和控制台
Log.Logger.Information("start")

' 关闭日志并刷新缓冲区
Log.CloseAndFlush()

可选优化:配置驱动Sink

如果你希望通过配置文件管理输出目标,可在JSON中添加WriteTo节点,这样代码中无需手动调用WriteTo.File/WriteTo.Console:

{
  "Serilog": {
    "MinimumLevel": {
      "Default": "Verbose",
      "Override": {
        "Microsoft": "Warning",
        "System": "Warning"
      }
    },
    "WriteTo": [
      { "Name": "File", "Args": { "path": "test.txt" } },
      { "Name": "Console" }
    ]
  }
}

对应的简化代码:

Dim config = builder.Build()

Dim LoggerConfiguration = New LoggerConfiguration().
    ReadFrom.Configuration(config).
    Enrich.FromLogContext()

Log.Logger = LoggerConfiguration.CreateLogger()

Dim AspNetHost = Host.CreateDefaultBuilder().
    ConfigureServices(Sub(X, Y)
                          ConfigureDI(X, Y)
                      End Sub).
    UseSerilog().
    Build()

Log.Logger.Information("start")
Log.CloseAndFlush()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 03:01:19