diff options
Diffstat (limited to 'azalea-client/src/test_utils/tracing.rs')
| -rw-r--r-- | azalea-client/src/test_utils/tracing.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/azalea-client/src/test_utils/tracing.rs b/azalea-client/src/test_utils/tracing.rs new file mode 100644 index 00000000..85ac4bd6 --- /dev/null +++ b/azalea-client/src/test_utils/tracing.rs @@ -0,0 +1,38 @@ +use bevy_log::tracing_subscriber::{ + self, EnvFilter, Layer, + layer::{Context, SubscriberExt}, + registry::LookupSpan, + util::SubscriberInitExt, +}; +use tracing::{Event, Level, Subscriber, level_filters::LevelFilter}; + +pub fn init_tracing() { + init_tracing_with_level(Level::WARN); +} + +pub fn init_tracing_with_level(max_level: Level) { + tracing_subscriber::registry() + .with( + tracing_subscriber::fmt::layer().with_filter( + EnvFilter::builder() + .with_default_directive(max_level.into()) + .from_env_lossy(), + ), + ) + .with(TestTracingLayer { + panic_on_level: max_level, + }) + .init(); +} + +struct TestTracingLayer { + panic_on_level: Level, +} +impl<S: Subscriber> Layer<S> for TestTracingLayer { + fn on_event(&self, event: &Event<'_>, _ctx: Context<'_, S>) { + let level = *event.metadata().level(); + if level <= self.panic_on_level { + panic!("logged on level {level}"); + } + } +} |
