#log-level #logging #log #log-file #spdlog #env-var

spdlog-rs

A fast and combinable Rust logging crate, inspired by the C++ logging library spdlog

22 releases

0.3.13 Feb 11, 2024
0.3.12 Oct 11, 2023
0.3.11 Sep 6, 2023
0.3.10 Jul 13, 2023
0.2.4 Mar 2, 2022

#74 in Debugging

Download history 501/week @ 2023-12-23 365/week @ 2023-12-30 631/week @ 2024-01-06 576/week @ 2024-01-13 497/week @ 2024-01-20 471/week @ 2024-01-27 511/week @ 2024-02-03 456/week @ 2024-02-10 584/week @ 2024-02-17 604/week @ 2024-02-24 608/week @ 2024-03-02 669/week @ 2024-03-09 652/week @ 2024-03-16 793/week @ 2024-03-23 595/week @ 2024-03-30 493/week @ 2024-04-06

2,626 downloads per month
Used in 6 crates (4 directly)

MIT/Apache and maybe LGPL-2.1-or-later WITH GCC-exception-2.0

320KB
7K SLoC

spdlog-rs

A fast and combinable Rust logging crate, inspired by the C++ logging library spdlog.

Features

  • Very fast (see Benchmarks).
  • Various log targets:
    • Standard streams with optional colors.
    • Files.
    • Rotating log files by file size.
    • Rotating log files hourly.
    • Rotating log files daily.
    • ... (more targets are implementing, PRs are welcome)
    • Extendable with custom log targets.
  • Compatible with log crate (optional).
  • Asynchronous support.
  • Configured via environment variable.
  • Custom formatting.
  • Log filtering - log levels can be modified in runtime as well as in compile time.

Getting started

Add this to Cargo.toml:

[dependencies]
spdlog-rs = "0.3"

The documentation of this crate is hosted on docs.rs, and you can find examples under ./examples directory.

If you have any questions or need help while using this crate, feel free to open a discussion. For feature requests or bug reports, please open an issue.

Supported Rust Versions

The current minimum supported Rust version is 1.56.

spdlog-rs is built against the latest Rust stable release, it is not guaranteed to build on Rust versions earlier than the minimum supported version.

spdlog-rs follows the compiler support policy that the latest stable version and the 3 most recent minor versions before that are always supported. For example, if the current latest Rust stable version is 1.61, the minimum supported version will not be increased past 1.58. Increasing the minimum supported version is not considered a semver breaking change as long as it complies with this policy.

License

Licensed under either of

at your option.

Contribution

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

Dependencies

~3–13MB
~109K SLoC