aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src/test_utils/tracing.rs
diff options
context:
space:
mode:
Diffstat (limited to 'azalea-client/src/test_utils/tracing.rs')
-rw-r--r--azalea-client/src/test_utils/tracing.rs38
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}");
+ }
+ }
+}