Serilog日志文件达1000KB时突然停止写入的问题咨询
Serilog日志达到1000KB停止写入的解决方法
问题原因
你的Serilog配置仅启用了按天滚动日志,但未配置文件大小相关的滚动策略。Serilog.Sinks.File默认存在文件大小限制(部分版本默认值为1MB即1000KB),当日志文件达到该阈值后,因未开启按大小滚动逻辑,日志写入会停止。
解决方案
提供两种可行修改方案,按需选择:
方案1:开启按大小+按天滚动(推荐)
在配置中添加rollOnFileSizeLimit启用大小触发滚动,并可自定义fileSizeLimitBytes设置单文件最大容量:
{ "Serilog": { "WriteTo": [ { "Name": "File", "Args": { "path": "log.txt", "rollingInterval": "Day", "shared": true, "retainedFileCountLimit": null, "rollOnFileSizeLimit": true, "fileSizeLimitBytes": 10485760 // 设置为10MB,可根据需求调整字节数 } } ] } }
方案2:取消文件大小限制(不推荐)
若无需限制单文件大小,可将fileSizeLimitBytes设为null,但长期运行会导致日志文件过大,不利于管理:
{ "Serilog": { "WriteTo": [ { "Name": "File", "Args": { "path": "log.txt", "rollingInterval": "Day", "shared": true, "retainedFileCountLimit": null, "fileSizeLimitBytes": null } } ] } }
关键参数说明
rollOnFileSizeLimit: 设为true时,日志文件达到大小限制后会自动创建新文件(文件名追加序号,如log_001.txt),同时保留按天滚动的规则。fileSizeLimitBytes: 控制单日志文件的最大字节数,手动设置可明确避免默认值带来的意外限制。
内容的提问来源于stack exchange,提问作者just_code_dog
相关产品推荐
相关产品推荐

