Skip to content

SpriteOvO/spdlog-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spdlog-rs

Fast, highly configurable Rust logging crate, inspired by the C++ logging library spdlog.

Features

  • Very fast (see Benchmarks).
  • Asynchronous support.
  • Compatible with log crate.
  • Custom log formats:
    • compile-time zero-cost pattern or runtime pattern;
    • manually implementing for more flexibility.
  • Various combinable sinks:
    • standard streams with optional color support;
    • files (single file, rotating hourly, daily, periodically or by file size);
    • platform-specific (e.g. journald for Linux and OutputDebugStringW for Windows);
    • ... and able to implement one yourself.
  • Structured logging.
  • Configuring via environment variables.
  • Readable level filters.

Getting started

Add this to Cargo.toml:

[dependencies]
spdlog-rs = "0.5"

The documentation of this crate is hosted on docs.rs, and you can learn examples under ./examples directory along with it.

If you have any trouble while using this crate, please don't hesitate to open a discussion for help. For feature requests or bug reports, please open an issue.

Developments

Unreleased commits are active on main-dev branch, and main branch is only synchronized when released.

If you are going to contribute spdlog-rs, please make sure to check out the main-dev branch and select the main-dev branch as the base when opening PR.

Supported Rust versions

The current minimum supported Rust version is 1.66.1.

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.