]>
Commit | Line | Data |
---|---|---|
f035d41b XL |
1 | mod support; |
2 | use self::support::*; | |
6a06907d | 3 | use tracing::{self, Level}; |
f035d41b XL |
4 | use tracing_subscriber::{filter::EnvFilter, prelude::*}; |
5 | ||
6a06907d XL |
6 | mod my_module { |
7 | pub(crate) fn test_records() { | |
8 | log::trace!("this should be disabled"); | |
9 | log::info!("this shouldn't be"); | |
10 | log::debug!("this should be disabled"); | |
11 | log::warn!("this should be enabled"); | |
12 | log::warn!(target: "something else", "this shouldn't be enabled"); | |
13 | log::error!("this should be enabled too"); | |
14 | } | |
15 | ||
16 | pub(crate) fn test_log_enabled() { | |
17 | assert!( | |
18 | log::log_enabled!(log::Level::Info), | |
19 | "info should be enabled inside `my_module`" | |
20 | ); | |
21 | assert!( | |
22 | !log::log_enabled!(log::Level::Debug), | |
23 | "debug should not be enabled inside `my_module`" | |
24 | ); | |
25 | assert!( | |
26 | log::log_enabled!(log::Level::Warn), | |
27 | "warn should be enabled inside `my_module`" | |
28 | ); | |
29 | } | |
30 | } | |
31 | ||
f035d41b XL |
32 | #[test] |
33 | fn log_is_enabled() { | |
f035d41b XL |
34 | let filter: EnvFilter = "filter_log::my_module=info" |
35 | .parse() | |
36 | .expect("filter should parse"); | |
37 | let (subscriber, finished) = subscriber::mock() | |
38 | .event(event::mock().at_level(Level::INFO)) | |
39 | .event(event::mock().at_level(Level::WARN)) | |
40 | .event(event::mock().at_level(Level::ERROR)) | |
41 | .done() | |
42 | .run_with_handle(); | |
f035d41b | 43 | |
6a06907d XL |
44 | // Note: we have to set the global default in order to set the `log` max |
45 | // level, which can only be set once. | |
46 | subscriber.with(filter).init(); | |
47 | ||
48 | my_module::test_records(); | |
49 | log::info!("this is disabled"); | |
50 | ||
51 | my_module::test_log_enabled(); | |
52 | assert!( | |
53 | !log::log_enabled!(log::Level::Info), | |
54 | "info should not be enabled outside `my_module`" | |
55 | ); | |
56 | assert!( | |
57 | !log::log_enabled!(log::Level::Warn), | |
58 | "warn should not be enabled outside `my_module`" | |
59 | ); | |
f035d41b XL |
60 | |
61 | finished.assert_finished(); | |
62 | } |