1 #![cfg(all(feature = "env-filter", feature = "tracing-log"))] 2 3 use tracing::{self, Level}; 4 use tracing_mock::{expect, subscriber}; 5 use tracing_subscriber::{filter::LevelFilter, prelude::*, reload}; 6 7 #[test] reload_max_log_level()8fn reload_max_log_level() { 9 let (subscriber, finished) = subscriber::mock() 10 .event(expect::event().at_level(Level::INFO)) 11 .event(expect::event().at_level(Level::DEBUG)) 12 .event(expect::event().at_level(Level::INFO)) 13 .only() 14 .run_with_handle(); 15 let (filter, reload_handle) = reload::Layer::new(LevelFilter::INFO); 16 subscriber.with(filter).init(); 17 18 assert!(log::log_enabled!(log::Level::Info)); 19 assert!(!log::log_enabled!(log::Level::Debug)); 20 assert!(!log::log_enabled!(log::Level::Trace)); 21 22 log::debug!("i'm disabled"); 23 log::info!("i'm enabled"); 24 25 reload_handle 26 .reload(Level::DEBUG) 27 .expect("reloading succeeds"); 28 29 assert!(log::log_enabled!(log::Level::Info)); 30 assert!(log::log_enabled!(log::Level::Debug)); 31 assert!(!log::log_enabled!(log::Level::Trace)); 32 33 log::debug!("i'm enabled now"); 34 log::info!("i'm still enabled, too"); 35 36 finished.assert_finished(); 37 } 38