Logger that aims to provide a simple case of
env_logger that just
logs to stderr
based on verbosity.
Module documentation with examples
Add this to your Cargo.toml
:
toml
[dependencies]
stderrlog = "0.2"
and this to your crate root:
rust
extern crate stderrlog;
and this to your main():
rust
stderrlog::new().verbosity(args.flag_v).quiet(args.flag_q).init().unwrap();
where your args struct is defined as:
rust
struct Args {
flag_v: usize,
flag_q: bool,
...
}
```rust extern crate docopt;
extern crate log; extern crate rustc_serialize; extern crate stderrlog;
use docopt::Docopt;
const USAGE: &'static str = " Usage: program [-q] [-v...] ";
struct Args { flagq: bool, flagv: usize, }
fn main() { let args: Args = Docopt::new(USAGE) .andthen(|d| d.decode()) .unwrapor_else(|e| e.exit());
stderrlog::new()
.module(module_path!())
.quiet(args.flag_q)
.verbosity(args.flag_v)
.init()
.unwrap();
trace!("trace message");
debug!("debug message");
info!("info message");
warn!("warn message");
error!("error message");
// ...
} ```
```rust
extern crate clap;
extern crate log; extern crate stderrlog;
use clap::{Arg, App};
fn main() { let m = App::new("stderrlog example") .version(crateversion!()) .arg(Arg::withname("verbosity") .short("v") .multiple(true) .help("Increase message verbosity")) .arg(Arg::withname("quiet") .short("q") .help("Silence all output")) .getmatches();
let verbose = m.occurrences_of("verbosity") as usize;
let quiet = m.is_present("quiet");
stderrlog::new()
.module(module_path!())
.quiet(quiet)
.verbosity(verbose)
.init()
.unwrap();
trace!("trace message");
debug!("debug message");
info!("info message");
warn!("warn message");
error!("error message");
} ```