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 压缩

Download history 83/week @ 2024-03-11 57/week @ 2024-03-18 129/week @ 2024-03-25 76/week @ 2024-04-01 156/week @ 2024-04-08 78/week @ 2024-04-15 53/week @ 2024-04-22 9/week @ 2024-04-29 121/week @ 2024-05-06 94/week @ 2024-05-13 129/week @ 2024-05-20 94/week @ 2024-05-27 31/week @ 2024-06-03 42/week @ 2024-06-10 27/week @ 2024-06-17 37/week @ 2024-06-24

每月162次下载

自定义许可

26KB
528

compressed_log

Latest Version Documentation

一个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