mirror of
https://github.com/nushell/nushell.git
synced 2025-08-13 13:47:42 +02:00
Add --loglevel and --develop
--loglevel sets the log level for all of nu --develop takes a list of modules and turns on trace mode for them
This commit is contained in:
50
src/main.rs
50
src/main.rs
@ -17,10 +17,58 @@ mod prelude;
|
||||
mod shell;
|
||||
mod stream;
|
||||
|
||||
use clap::{App, Arg};
|
||||
use log::LevelFilter;
|
||||
use std::error::Error;
|
||||
|
||||
fn main() -> Result<(), Box<Error>> {
|
||||
pretty_env_logger::init();
|
||||
let matches = App::new("nu shell")
|
||||
.version("0.5")
|
||||
.arg(
|
||||
Arg::with_name("loglevel")
|
||||
.short("l")
|
||||
.long("loglevel")
|
||||
.value_name("LEVEL")
|
||||
.possible_values(&["error", "warn", "info", "debug", "trace"])
|
||||
.takes_value(true),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("develop")
|
||||
.long("develop")
|
||||
.multiple(true)
|
||||
.takes_value(true),
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
let loglevel = match matches.value_of("loglevel") {
|
||||
None => LevelFilter::Warn,
|
||||
Some("error") => LevelFilter::Error,
|
||||
Some("warn") => LevelFilter::Warn,
|
||||
Some("info") => LevelFilter::Info,
|
||||
Some("debug") => LevelFilter::Debug,
|
||||
Some("trace") => LevelFilter::Trace,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
|
||||
let mut builder = pretty_env_logger::formatted_builder();
|
||||
|
||||
if let Ok(s) = std::env::var("RUST_LOG") {
|
||||
builder.parse_filters(&s);
|
||||
}
|
||||
|
||||
builder.filter_module("nu", loglevel);
|
||||
|
||||
match matches.values_of("develop") {
|
||||
None => {}
|
||||
Some(values) => for item in values {
|
||||
println!("filtering {:?}", item);
|
||||
builder.filter_module(&format!("nu::{}", item), LevelFilter::Trace);
|
||||
} //println!("{:?}", values.collect::<Vec<&str>>()),
|
||||
}
|
||||
|
||||
builder.try_init()?;
|
||||
|
||||
// pretty_env_logger::init();
|
||||
futures::executor::block_on(crate::cli::cli())?;
|
||||
Ok(())
|
||||
}
|
||||
|
Reference in New Issue
Block a user