#logs #pretty-print #log-format #nodejs #port #structured #original

bin+lib bunyan

一个用于美观打印结构化日志的 CLI。原始 JavaScript bunyan CLI 的 Rust 版本。

11 个版本

0.1.9 2022年11月27日
0.1.7 2021年12月14日
0.1.6 2021年11月24日
0.1.2 2021年5月2日
0.1.1 2020年11月15日

#42值格式化

Download history 2290/week @ 2024-03-14 474/week @ 2024-03-21 462/week @ 2024-03-28 506/week @ 2024-04-04 1052/week @ 2024-04-11 592/week @ 2024-04-18 1080/week @ 2024-04-25 611/week @ 2024-05-02 894/week @ 2024-05-09 1529/week @ 2024-05-16 463/week @ 2024-05-23 617/week @ 2024-05-30 1031/week @ 2024-06-06 667/week @ 2024-06-13 1284/week @ 2024-06-20 630/week @ 2024-06-27

3,854 每月下载量

MIT/Apache

285KB
231

bunyan-rs

node-bunyan 的 Rust 版本。


结构化日志是自从切片面包以来最伟大的事物。

你是否因为只需安装 npm 就能获得一个用于美观打印日志的惊人的 NodeJS bunyan CLI 而感到烦恼?

我理解你!

这就是我编写 bunyan-rs 的原因,它是原始 NodeJS bunyan CLI(其子集)的 Rust 版本。


目录

  1. 如何安装
  2. 如何使用
  3. 局限性
  4. Rust 中的布纽恩生态系统
  5. 基准测试
  6. 许可证

如何安装

使用 cargo

cargo install bunyan

您可以使用以下命令验证您的安装:

bunyan --help

或者,您可以从 最新版本 下载适用于您的操作系统的预构建二进制文件。

如何使用

bunyan-rs 仅支持 stdin 作为输入源。

您可以将日志文件管道输入其中

cat tests/all/corpus/all.log | bunyan

或者,您可以将长时间运行的作业的输出管道输入其中

# Tail logs from a Docker container
docker logs -f my-app | bunyan

# Tail logs from a Kubernetes pod using kubectl
kubectl logs -f my-app-asdadf-cvcvcv

# Tail logs from a group of Kubernetes pods using stern
stern "my-app" --output raw --tail 100 | bunyan

局限性

与原始 bunyan CLI 相比,bunyan-rs

  • 仅支持 stdin 作为输入源(不支持文件);
  • 不支持通过 DTrace(-p 参数)进行日志监听;
  • 不支持 -c/--condition 过滤机制;
  • 不支持 --pager/--no-pager 标志;
  • 仅支持 long 输出格式;
  • 仅支持 UTC 格式的时间。

上述功能中的一些可能在将来添加。
如果您有兴趣贡献,请提交一个问题。

Rust 中的布纽恩生态系统

您正在编写一个 Rust 应用程序,并希望以 bunyan 格式记录日志 - 您可以使用什么?

请查看以下 crates

基准测试

在查看应用日志时,速度从未成为燃眉之急,但任何对我的日常工具的加速都是受欢迎的。

要对比测试 bunyan-rs 与原始的 NodeJS bunyan,请按照以下步骤操作

  • 使用 release 配置构建 bunyan-rs
cargo build --release
  • 通过 npm 安装 bunyan。您还需要 npx
  • 开始测试!
# bunyan JS
time ./benchmark_js.sh benchmark_logs.txt
# bunyan-rs
time ./benchmark_rs.sh benchmark_logs.txt

在我的系统上,这个非常不科学且高度不准确的基准测试表明 bunyan-rs 的速度大约是原始 NodeJS bunyan 的 5 倍 - 您的体验可能会有所不同。
Rust 代码高度未优化(我们正在自由且浪费地分配!) - 精简它可能是一项有趣的练习。

许可证

根据您的选择,此代码库受 Apache License 2.0 或 MIT 许可证的许可。除非您明确声明,否则您提交的任何有意提交以包含在此代码库中的贡献,如 Apache-2.0 许可证中定义,应如上所述双重许可,不附加任何额外的条款或条件。

依赖项

~3–12MB
~140K SLoC