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

如何配置Serilog使滚动日志中最新日志始终无数字后缀

解决Serilog文件日志滚动时保持最新日志为无后缀文件名的问题

要让最新日志始终保留为MyApp.log,旧日志滚动时自动添加数字后缀,你需要调整Serilog的配置并确保使用正确版本的日志接收器包:

1. 更新Serilog.Sinks.File包

首先确认项目中引用的Serilog.Sinks.File包为2.0.0及以上版本(当前最新稳定版为5.x),旧版本的滚动逻辑与你期望的相反,升级后才能实现目标行为。可通过NuGet包管理器完成更新。

2. 修改日志配置

替换原有配置为以下代码,该配置会让当前写入的日志始终保持无后缀文件名,达到大小限制时自动将旧日志重命名为带数字后缀的文件:

.WriteTo.File(
    path: "C:/Logs/MyApp.log",
    fileSizeLimitBytes: 5242880, // 5 MB
    rollOnFileSizeLimit: true,
    retainedFileCountLimit: 5,
    rollingInterval: RollingInterval.Infinite
);

关键参数说明:

  • rollingInterval: RollingInterval.Infinite:禁用按时间滚动逻辑,仅触发按文件大小的滚动,保证命名规则仅基于数字后缀。
  • rollOnFileSizeLimit: true:开启文件大小触发的滚动功能。
  • retainedFileCountLimit: 5:自动清理超过5个的旧日志文件,避免磁盘空间过度占用。

配置生效后,日志文件结构会变为:

  • MyApp.log - 最新日志(正在写入)
  • MyApp_001.log - 次新日志
  • MyApp_002.log - 旧日志
  • ...(最多保留5个旧文件)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:16