tinylog

20th August 2020 at 2:19pm
Linux: Log Rotation

tinylog 是 perp 工具集中的一个工具。接受标准输入,并按大小做 rotation。

使用场景是,你有个程序 myapp 向 stdout 打日志,你可以:

myapp | tinylog -k 10 -s 10485760 ./logs

这会把 myapp 的输出存在 ./logs 里,保留 10 个备份(-k 10),每个备份大小为 10M (-s 10485760)。

这个 Superuser 帖子 给出了很多类似的工具,大多是基于 multilog 做修改。他们有个问题是 rotate 后的文件都用了 @400000005b10bdfd337d3894.s 这种 TAI64N 格式的时间字符串,人眼不能读。因此放弃。

Tinylog 有一些问题:

  • 似乎于非 ASCII 字符不识别,会转义成 ?
  • httpdump | tinylog 时,运行一段时间后 httpdump 会处于 futex(0xb820c8, FUTEX_WAIT, 0, NULL 的状态,不再输出内容,不知道啥原因