You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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

火山引擎 最新活动