32次发布
0.5.6 | 2023年7月11日 |
---|---|
0.5.4 | 2023年3月9日 |
0.5.1 | 2022年7月20日 |
0.5.0 | 2022年1月12日 |
0.1.2 | 2018年12月21日 |
#108 in 压缩
每月162次下载
26KB
528 行
compressed_log
一个Rust crate,用于实时压缩日志,并在达到配置阈值后通过网络发送。
这对于运行Rust程序的一群嵌入式设备非常有用,您可以使用https安全地收集常规Rust日志输出,并使用Deflate压缩有效地收集。
LibFlate2的纯Rust后端仅使用100kb的内存缓冲区。使用'快速'压缩设置,我们的测试中平均压缩比约为25,对嵌入式MIPS处理器没有任何明显的CPU影响。
目前compressed_log包含完整的Actix套件来处理future和async请求。我们希望随着它们变得更加成熟,将其过渡到原生futures并大幅减少依赖关系。
在服务器端,日志简单地输出到文件中,这些文件可以使用标准日志收集工具进行聚合和处理。
功能
- 使用log API
- 使用LieFlate2实时压缩日志
- 可配置的阈值,将触发内存日志轮转和数据传输。
- 完全架构可移植,包括Mips和其他BE架构
示例
请查看examples
文件夹以获取更多示例。包括收集日志的自定义格式。
客户端
let level = Level::Info;
let logger = LoggerBuilder::new()
.set_level(level)
.set_compression_level(Compression::Slow)
.set_sink_url("http://127.0.0.1:8000/sink/")
.build()?;
log::set_boxed_logger(Box::new(logger))?;
log::set_max_level(level.to_level_filter());
服务器
当前的参考服务器实现是compressed_log_sink
依赖项
~19–30MB
~523K SLoC