Log Parse

v0.1.0添加于 2026年9月26日示例数据

将 syslog(RFC 3164 / 5424)和常见 Web 服务器访问日志解析为结构化记录。

示例数据。这些数值仅为占位,并非实测结果。

cargo install kura-rs
kura add log-parse

将 3 个源码文件复制到你的项目中。此后代码完全归你所有。

如果其他工具已经安装了 kura 命令,请运行 cargo install kura-rs --bin kura-rs,并改用 kura-rs add。

use crate::parts::log_parse::{parse_line, Format};

for line in reader.lines() {
    let record = parse_line(Format::Rfc5424, &line?)?;
    println!("{} {}", record.host, record.message);
}

验证

示例数据

使用黄金文件比对与 re 3.12(Python)进行对照:向两个实现输入相同数据,并比较输出结果。

参考实现
re
Python 3.12
测试用例
1,200
黄金文件比对
通过
1,200 / 1,200
全部一致
最近运行
2026年9月26日
UTC

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

基准测试

示例数据

在不同输入规模下对比 kura-rs(Rust)与 re。 在所有测量的输入规模下均更快,最高快 20×。

以下数值仅为占位。 这些数值尚未经过实测,请勿当作真实结果。该组件在其 registry 文件中标记为 "sample": true。

kura-rs (Rust)re
每次运行的耗时(越低越好)。
显示数据表
输入规模kura-rs (Rust)re加速比
1000.03 ms0.4 ms13×
1,0000.21 ms3.9 ms19×
10,0002 ms39 ms20×
100,00020 ms395 ms20×
1,000,000196 ms3.96 s20×

文件

  • parts/log_parse/mod.rs
  • parts/log_parse/syslog.rs
  • parts/log_parse/access.rs

crate 依赖