8 个版本

新增 0.4.2 2024 年 8 月 20 日
0.4.1 2022 年 8 月 17 日
0.2.1 2021 年 12 月 23 日
0.1.3 2021 年 12 月 22 日

#153 in 调试

Download history 141/week @ 2024-08-16

141 每月下载量

MIT 许可证

23KB
261

Turnstiles

一个正在进行的库,它包装了 io::Write 特性以启用文件轮换,即用于日志。目标是使文件轮换在文件句柄级别上进行,并尽可能减少依赖。

实现/计划中的轮换条件

  • 无(永不轮换)
  • SizeMB(文件大小)
  • Duration(自上次修改以来经过的时间)
  • SizeLines(文件中的行数)

还有三个选项可以修剪旧日志

  • MaxFiles
  • MaxAge

警告

此功能目前处于积极开发中,可能会经常更改/破坏。将尽一切努力确保发生的破坏性更改至少反映在软件包的次要版本更改中,无论是从API生成还是日志文件生成。0.2.0之前的版本布满了错误,我惊讶于我竟然在编写它的那些天里还穿上了裤子。

文档

有关如何工作、示例用法和错误处理的说明,请参阅此处的文档。

未来工作

  • 在请求轮换时刷新内部索引,而不仅仅是创建记录器时
  • 更小心地处理边缘情况,例如在1MB文件上轮换并写入恰好1MB到磁盘
  • 与专用日志库有更直接的集成,例如 impl log::Log
  • 调查与atomicwrites等工具的集成
  • 更灵活的轮换选项

为什么选择 turnstiles

这是一个旋转的金属物品,也是比利·乔尔专辑的名字,其中收录了夏日,高地瀑布,这是我最喜欢的歌曲之一。

依赖项

~2.3–3.5MB
~56K SLoC