1 unstable release
0.1.0 | Jul 18, 2022 |
---|
#826 in Debugging
30KB
696 lines
ndjsonlogger
ndjsonlogger is an nd (newline delimited) json logger.
Rust 1.60 or greater is required.
TODO/Features
- debug, info, warn and error macros
- debug! macro compiles to no-op on release builds
- trace macro with trace mask
- all JSON primative types (number, bool, null) supported
- one level of nested arrays
-
Option<&[_]>
and&[Option<_>]
- compile-time iso timestamp feature
- quickstart print log lines to stdout
- configurable alternative sinks for log lines
- initialize with service name - add to all log lines
- custom runtime logic for additional key/value(s)
- work with ndjsonloggercore
no_std
Quickstart
[dependencies]
ndjsonlogger = "0.1"
ndjsonloggercore = {version = "0.1", features = ["std"]}
NOTE: You must include BOTH lines in your Cargo.toml. Additionally for the 0.1 release, the std feature is required in ndjsonloggercore.
use ndjsonlogger::{info, debug};
fn main() {
info!("hello I'm a log line");
debug!("application closing", {
reason = "end of main function"
});
}}
{"level": "info", "msg": "hello I'm a log line"}
{"level": "debug", "msg": "application closing", "reason": "end of main function"}
An example demonstrating all features is here.
Contributing
Contributions welcome. Please open a github issue.