2 stable releases
1.0.1 | Feb 4, 2025 |
---|---|
1.0.0 | Feb 3, 2025 |
#245 in Debugging
415 downloads per month
Used in bestool
17KB
168 lines
lloggs
Logging configuration for clap applications.
This library provides a common set of flags for controlling logging in a CLI application, and
a default implementation for configuring logging based on those flags using non-blocking
tracing-subscriber when the tracing
feature is enabled
(which is the default).
It also supports configuring logging before parsing arguments, to allow logging to be set up
using environment variables such as RUST_LOG
or DEBUG_INVOCATION
, respects the NO_COLOR
environment variable (https://no-color.org), and adjusts defaults when it detects systemd.
- API documentation.
- Licensed under Apache 2.0 or MIT.
Example
use lloggs::{LoggingArgs, PreArgs};
use clap::Parser;
#[derive(Debug, Parser)]
struct Args {
#[command(flatten)]
logging: LoggingArgs,
// Your other arguments here
}
fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let mut _guard = PreArgs::parse().setup()?;
let args = Args::parse();
if _guard.is_none() {
_guard = Some(args.logging.setup(|v| match v {
0 => "info",
1 => "debug",
_ => "trace",
})?);
}
// Your application logic here
Ok(())
}
Dependencies
~1–13MB
~96K SLoC