A logger for Rust that's *actually* easy to use.
- Easy to use: Just import the macros and you're good to go. No need to configure anything. No need to create a logger. Just log.
- Versatile: Log messages at different levels, works across threads, and can be used in libraries.
- Lightweight: Relies only on
lazy_static
for thread safety andchrono
for timestamps (in addition to the standard library).
Add this to your Cargo.toml
:
[dependencies]
woody = { git = "https://github.com/trvswgnr/woody.git" }
use woody::*;
fn main() {
log!(LogLevel::Info, "An info message.");
log_debug!("A debug message.");
log_info!("An info message.");
log_warn!("A warning message.");
log_error!("An error message.");
log_trace!("A trace message.");
}
Logs are output to the woody.log
file in the current directory.
Environment variables can be set to control the log level and output file:
$ WOODY_LEVEL=error cargo run # Only error messages will be logged
$ WOODY_FILE=woodyrulez.log cargo run # Logs will be written to woodyrulez.log
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Important
When running tests, make sure to remove the woody.log
file in the current directory after each test run.
cargo test && rm ./woody.log