Serilog配置:保留当前日志文件名并自定义归档文件名
解决方案
可以实现你的需求,通过调整Serilog.File Sink的配置参数即可达成,同时建议你移除已被弃用的Serilog.Sinks.RollingFile包(当前Serilog.Sinks.File 5.0.0已完全包含其滚动日志功能)。
修改后的配置代码
_logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.File( path: HttpContext.Current.Server.MapPath("~/MyApp/App_Data/logs/app.log"), rollOnFileSizeLimit: true, fileSizeLimitBytes: 10000000, shared: true, rollingInterval: RollingInterval.Day, retainedFileTimeFormat: "yyyyMMdd", retainedFileCountLimit: null // 可选,按需设置归档文件保留数量,null表示不限制 ) .CreateLogger();
参数说明
rollingInterval: RollingInterval.Day:指定按日期维度滚动,结合大小滚动触发条件,会将达到大小限制的当前日志文件重命名为app_YYYYMMDD.log格式。retainedFileTimeFormat: "yyyyMMdd":明确归档文件的日期命名格式,确保生成如app_20220913.log的文件名。- 若当日内多次触发大小滚动(比如一天内日志超过多个10MB),Serilog会自动在日期后附加序号(如
app_20220913_001.log),避免覆盖已生成的当日归档文件,这是合理的默认行为。 - 保持
rollOnFileSizeLimit: true和fileSizeLimitBytes: 10000000不变,确保达到10MB时触发滚动。 - 当前日志始终保持为
app.log,所有归档日志以日期格式命名存放。
内容的提问来源于stack exchange,提问作者seanrco
相关产品推荐
相关产品推荐

