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 在 值格式化
3,854 每月下载量
285KB
231 行
bunyan-rs
结构化日志是自从切片面包以来最伟大的事物。
你是否因为只需安装 npm
就能获得一个用于美观打印日志的惊人的 NodeJS bunyan CLI 而感到烦恼?
我理解你!
这就是我编写 bunyan-rs
的原因,它是原始 NodeJS bunyan CLI(其子集)的 Rust 版本。
目录
如何安装
使用 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
tracing-bunyan-formatter
,用于tracing
的 bunyan 格式化工具;slog-bunyan
,用于slog
的 bunyan 格式化工具。
基准测试
在查看应用日志时,速度从未成为燃眉之急,但任何对我的日常工具的加速都是受欢迎的。
要对比测试 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