Tinylog:同时配置DailyPolicy与SizePolicy的日志命名及重启行为问询
关于tinylog RollingFileWriter的两个行为解析
咱们先理清第一个问题:同时配置DailyPolicy和SizePolicy时,触发大小限制后的文件名规则。
当你设置了TimestampLabeler("yyyy-MM-dd")和两种滚动策略后,tinylog的命名逻辑是这样的:
- 当日志开始写入时,会生成基础文件名:
CryoSip_yyyy-MM-dd.log(比如CryoSip_2024-05-20.log) - 当这个文件的大小达到
SizePolicy(1000 * 1024)设定的1MB时,会立即关闭当前文件,新建一个带递增数字后缀的文件,格式为CryoSip_yyyy-MM-dd_1.log - 如果这个新文件又达到大小限制,会继续生成
CryoSip_yyyy-MM-dd_2.log,以此类推 - 注意:这个数字后缀会在每天重置,第二天会重新从
CryoSip_2024-05-21.log开始,触发大小限制后再生成_1后缀的文件
接下来聊聊重启应用后的追加行为,你提到RollingFileWriter不支持追加模式但实际会追加,这其实是tinylog的预期设计:
RollingFileWriter虽然没有单独的“追加”配置项,但它会自动检测当前日期对应的日志文件状态:
- 如果重启时还在同一天,且对应的基础日志文件(比如
CryoSip_2024-05-20.log)存在,并且文件大小还没达到SizePolicy的限制,tinylog会直接打开这个文件并追加内容,而不是新建文件 - 只有当日期切换到新的一天,或者当前文件已经达到大小限制时,才会触发新建文件的逻辑
- 你配置的
90参数是日志保留天数,只会影响旧日志的清理,不会干扰当天日志的追加行为
内容的提问来源于stack exchange,提问作者Vittorio Torroni




