/tao-log

The missing rust log output macros, unearthed.

Primary LanguageRustApache License 2.0Apache-2.0

tao-log

Rustdoc Change Log Crates.io CI Status deps status

Extension macros for output to the rust log crate

Most notably this includes a set of -v suffix macros (e.g. debugv!) that provide a superset of the std::dbg! feature.

“Why write an RFC, when you can just write code?” — 老子 (“Old Master”), 557 BCE

This unenlightened wanderer (游侠) wrote a log crate PR and RFC 317: Inline Expression and Value Logging, before publishing the work as this standalone crate.

See the rustdoc for usage details.

Minimum supported rust version

MSRV := 1.32.0

The crate will fail fast on any lower rustc (via a build.rs version check) and is also CI tested on this version, included both 2015 and 2018 edition external macro imports. A PR would be considered to backport the project to earlier rust versions, possibly as far back as 1.16.0 (log's current MSRV). Or consider lobbying for the inclusion of this feature in log itself.

Compile time errors for misuse of -v macros (e.g. 0 arguments, 4 arguments, non-literal prefix argument, missing format specifier, etc.) are tested and verified (see ./test_compile_errors). Rustc versions prior to 1.39.0 may produce less clear errors.

License

This project is dual licensed under either of following:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in tao-log by you, as defined by the Apache License, shall be dual licensed as above, without any additional terms or conditions.