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

如何配置Serilog滚动文件:主文件存最新日志,旧日志归档

Serilog 配置实现主日志文件保留最新内容

可以实现你要的效果,这是Serilog文件接收器的标准行为之一,你当前的配置可能存在参数错误导致行为不符合预期。

正确配置示例

代码方式配置

Log.Logger = new LoggerConfiguration()
    .WriteTo.File(
        path: "FancyApp.log",
        fileSizeLimitBytes: 1073741824, // 1GB
        rollOnFileSizeLimit: true,
        retainedFileCountLimit: null, // 不限制归档文件数量,可按需设置具体数值
        rollingInterval: RollingInterval.Infinite // 仅按文件大小触发滚动,禁用时间滚动
    )
    .CreateLogger();

配置文件方式(appsettings.json)

{
  "Serilog": {
    "WriteTo": [
      {
        "Name": "File",
        "Args": {
          "path": "FancyApp.log",
          "fileSizeLimitBytes": 1073741824,
          "rollOnFileSizeLimit": true,
          "retainedFileCountLimit": null,
          "rollingInterval": "Infinite"
        }
      }
    ]
  }
}

参数说明

  • rollOnFileSizeLimit: true:开启按文件大小触发归档逻辑
  • fileSizeLimitBytes:设置单文件最大容量为1GB(102410241024字节)
  • rollingInterval: Infinite:关闭按时间维度的滚动,确保仅在文件达到大小上限时归档
  • retainedFileCountLimit:可选参数,用于限制保留的归档文件数量,设为null则保留所有历史归档文件

归档行为说明

当FancyApp.log达到1GB上限时,Serilog会自动执行以下操作:

  1. 将已存在的FancyApp.log.1重命名为FancyApp.log.2,FancyApp.log.2重命名为FancyApp.log.3,以此类推
  2. 将当前的FancyApp.log重命名为FancyApp.log.1
  3. 创建新的空FancyApp.log,后续最新日志会写入这个新文件

这样就能保证FancyApp.log始终存储最新的日志内容,旧日志被逐步推送到编号递增的归档文件中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 14:12:42