4 releases (2 breaking)
0.4.0 | Feb 26, 2024 |
---|---|
0.3.1 | Feb 20, 2024 |
0.3.0 | Feb 19, 2024 |
0.2.0 | Feb 16, 2024 |
#636 in Debugging
184 downloads per month
16KB
192 lines
parallel_logger
A simple logger that does not do logging by itself but passes all log events to an arbitrary number of actual loggers running in parallel. Depending on the parallel execution mode, the actual loggers are executed either in sequence (ParallelMode::Sequential
) on one thread or in parallel (ParallelMode::Parallel
) using one thread per actual logger. ParallelMode::Sequential
should be sufficient for most use cases.
Very useful when logging is a bottleneck such as in realtime scenarios and/or when logging to a network or database etc.
Usage
Add the dependency to your Cargo.toml
:
[dependencies]
log = "0.4"
parallel_logger = "0.3"
How to use in your application:
use parallel_logger::{ParallelLogger, ParallelMode};
fn main() {
ParallelLogger::init(log::LevelFilter::Info, ParallelMode::Sequential, vec![any_logger_1, any_logger_2, ...]>);
}
Make sure not to create other loggers by using their respective init
methods, but to use their new
methods instead.
Do not register any other logger with the log crate before as the ParallelLogger will take that place.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
Dependencies
~320KB