Crates.io | bunyan |
lib.rs | bunyan |
version | 0.1.9 |
source | src |
created_at | 2020-10-15 20:34:03.816017 |
updated_at | 2022-11-27 10:17:50.704557 |
description | A CLI to pretty print structured logs. A Rust port of the original JavaScript bunyan CLI. |
homepage | |
repository | https://github.com/LukeMathWalker/bunyan |
max_upload_size | |
id | 300218 |
size | 2,452,468 |
Structured logs are the greatest thing since sliced bread.
Are you annoyed from having to install npm
just to get a copy of the amazing NodeJS bunyan CLI to pretty-print your logs?
I feel you!
That's why I wrote bunyan-rs
, a Rust port of (a subset of) the original NodeJS bunyan CLI.
Using cargo
:
cargo install bunyan
You can verify your installation with
bunyan --help
Alternatively, you can download a pre-built binary for your operating system from the latest release.
bunyan-rs
only supports stdin as input source.
You can pipe a log file into it:
cat tests/all/corpus/all.log | bunyan
Or you can pipe the output of a long-running job into it:
# 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
Compared to the original bunyan
CLI, bunyan-rs
:
stdin
as input source (no files);-p
argument);-c/--condition
filtering mechanism;--pager/--no-pager
flags;long
output format;Some of the above might or might not be added in the future.
If you are interested in contributing, please open an issue.
You are writing a Rust application and you'd like to emit logs in bunyan format - what can you use?
Check out the following crates:
tracing-bunyan-formatter
, a bunyan formatter for tracing
;slog-bunyan
, a bunyan formatter for slog
.Speed has never been a burning problem while eyeballing logs from applications, but any speed-up to the tools I use on a daily basis is always appreciated.
To benchmark bunyan-rs
against the original NodeJS bunyan
follow these steps:
bunyan-rs
using the release
profile:cargo build --release
bunyan
via npm
. You will need npx
as well;# bunyan JS
time ./benchmark_js.sh benchmark_logs.txt
# bunyan-rs
time ./benchmark_rs.sh benchmark_logs.txt
On my system bunyan-rs
is roughly 5x faster on this very non-scientific and highly inaccurate benchmark - your mileage may vary.
The Rust code is highly non-optimised (we are allocating freely and wastefully!) - streamlining it could be a fun exercise.
Licensed under either of Apache License, Version 2.0 or MIT license at your option. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.