如何在.NET6中使用SeriLog按日期创建日志文件夹
.NET6中SeriLog实现每日日期文件夹存储日志的配置方案
要实现每日创建日期命名的文件夹并将当日日志存入对应目录,需要修改SeriLog的路径配置,利用其内置的日期占位符生成动态路径。以下是调整后的完整配置及关键说明:
修改后的SeriLog JSON配置
{ "Serilog": { "MinimumLevel": "Debug", "WriteTo": [ { "Name": "File", "Args": { "path": "Logs\\{Date:yyyyMMdd}\\Log_{Date:yyyyMMdd}_{Hour}{Minute}{Second}.log", "rollingInterval": "Day", "fileSizeLimitBytes": 1000000, "rollOnFileSizeLimit": true, "retainedFileCountLimit": 30, "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:t4}] {Message:j}{NewLine}" } } ], "Enrich": [ "FromLogContext", "WithMachineName", "WithExceptionDetails" ], "Properties": { "ApplicationName": "SampleApp", "Environment": "Int" } } }
关键配置调整说明
- 动态路径模板:将
path改为Logs\\{Date:yyyyMMdd}\\Log_{Date:yyyyMMdd}_{Hour}{Minute}{Second}.log,其中{Date:yyyyMMdd}会被SeriLog自动替换为当前日志事件的日期(格式如20221205),自动创建对应日期的文件夹;文件名中的时分秒后缀避免同日内日志文件重名。 - 滚动间隔设置:
rollingInterval设为Day,确保SeriLog每日自动切换到新的日期文件夹,与路径模板的逻辑匹配。 - 保留原有滚动规则:
fileSizeLimitBytes和rollOnFileSizeLimit依然生效,当单日志文件超过指定大小后,会在当前日期文件夹下生成新的日志文件,符合你的需求。
内容的提问来源于stack exchange,提问作者Hari Sankar v m
相关产品推荐
相关产品推荐

