Allow override of RUST_LOG (#7705)

This commit is contained in:
Jack May
2020-01-08 09:19:12 -08:00
committed by GitHub
parent 2f5f8e7afd
commit 07855e3125
10 changed files with 32 additions and 18 deletions

View File

@ -22,12 +22,7 @@ impl log::Log for LoggerShim {
fn flush(&self) {}
}
// Configures logging with a specific filter.
// May be called at any time to re-configure the log filter
pub fn setup_with_filter(filter: &str) {
let logger = env_logger::Builder::from_env(env_logger::Env::new().default_filter_or(filter))
.format_timestamp_nanos()
.build();
fn replace_logger(logger: env_logger::Logger) {
let max_level = logger.filter();
log::set_max_level(max_level);
let mut rw = LOGGER.write().unwrap();
@ -35,7 +30,26 @@ pub fn setup_with_filter(filter: &str) {
let _ = log::set_boxed_logger(Box::new(LoggerShim {}));
}
// Configures logging with the default filter ("error")
pub fn setup() {
setup_with_filter("error");
// Configures logging with a specific filter overriding RUST_LOG. _RUST_LOG is used instead
// so if set it takes precedence.
// May be called at any time to re-configure the log filter
pub fn setup_with(filter: &str) {
let logger =
env_logger::Builder::from_env(env_logger::Env::new().filter_or("_RUST_LOG", filter))
.format_timestamp_nanos()
.build();
replace_logger(logger);
}
// Configures logging with a default filter if RUST_LOG is not set
pub fn setup_with_default(filter: &str) {
let logger = env_logger::Builder::from_env(env_logger::Env::new().default_filter_or(filter))
.format_timestamp_nanos()
.build();
replace_logger(logger);
}
// Configures logging with the default filter "error" if RUST_LOG is not set
pub fn setup() {
setup_with_default("error");
}