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

Serilog控制台应用MinimumLevel设置不够低时无法写入文本文件问题

问题根因

  • Serilog 未显式配置最低日志级别时,默认仅输出 Information 及更高等级(Warning、Error、Fatal)的日志,你代码中写入的 Debug 级别的日志会被直接过滤,不会写入文件。
  • 如果触发了数据库创建分支,但对应的 Log.Information 条目也未写入,还需要检查控制台项目和Logging.Core类库的Serilog相关依赖版本是否一致,版本不一致会导致 Log.Logger 实例不共享,配置无法生效。

修复方案

修改Logging.Core类库中的Logging类,显式指定最低日志级别即可:

public static class Logging
{
    public static void Configure()
    {
        ILogger logger = new LoggerConfiguration()
            // 显式设置最低记录日志级别为Debug,Debug及以上级别日志都会被输出
            .MinimumLevel.Debug()
            .WriteTo.File(path: "log.txt")
            .CreateLogger();
        Log.Logger = logger;
    }
}

可选优化建议

  • 若需要单独控制文件输出的日志级别,可以单独给File sink设置级别限制:
    .WriteTo.File(path: "log.txt", restrictedToMinimumLevel: Serilog.Events.LogEventLevel.Information)
    
  • 开发阶段可以额外添加控制台输出sink,方便实时查看日志输出:
    .WriteTo.Console()
    
  • 确保控制台主项目也安装了与类库版本一致的Serilog、Serilog.Sinks.File Nuget包,避免依赖冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 04:36:01