ndjsonlogger

Crates.iondjsonlogger
lib.rsndjsonlogger
version0.1.0
sourcesrc
created_at2022-07-18 09:30:54.799932
updated_at2022-07-18 09:30:54.799932
descriptionndjsonlogger
homepagehttps://github.com/flickpp/ndjsonlogger
repositoryhttps://github.com/flickpp/ndjsonlogger
max_upload_size
id627616
size29,053
(flickpp)

documentation

README

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.

Commit count: 9

cargo fmt