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
的状态,不再输出内容,不知道啥原因