Add Subscribe::event_enabled to conditionally dis/enable events based on fields
<!--
Thank you for your Pull Request. Please provide a description above and review
the requirements below.

Bug fixes and new features should include tests.

Contributors guide: https://github.com/tokio-rs/tracing/blob/master/CONTRIBUTING.md
-->

## Motivation

<!--
Explain the context and why you're making that change. What is the problem
you're trying to solve? If a new feature is being added, describe the intended
use case that feature fulfills.
-->

Allow filter layers to filter on the contents of events (closes #2007).

## Solution

<!--
Summarize the solution and provide any necessary context needed to understand
the code change.
-->

Add `Subscribe::event_enabled(&self, event: &Event<'_>, ctx: Context<'_, C>) -> bool;`. This is called before `Subscribe::on_event`, and if `event_enabled` returns `false`, `on_event` is not called (nor is `Collect::event`).

### Previously, this PR did

`Subscribe::on_event` returns `ControlFlow`, and the `Layered` subscriber only continues to call `on_event` on `ControlFlow::Continue`.

This PR exists mainly as a place for discussion of this potential solution. Looking at this diff, and given that *most* subscriber layers will want to continue and not break the layering, it might make sense to make this a new method which delegates to on_event by default. Since Layered is the primary way of layering two subscribers together, perhaps the footgun of *calling* `on_event` rather than "`filter_on_event`" would not be a big deal in practice?
This means it is impossible to implement features like e.g. [env_logger's regex log message filtering](https://docs.rs/env_logger/latest/env_logger/#filtering-results) in a separate `Subscribe` layer; it must be implemented in each and every layer which processes `Subscribe::on_event`.

## Feature Request

Allow `Subscribe` layers in a `Layered` `Collect`or to determine if lower layers should receive the `on_event` callback.

### Crates

This effects exclusively `tracing_subscriber`. The most straightforward implementation is a breaking change.

### Motivation

I'm working on an initiative ([tracing-filter](https://github.com/CAD97/tracing-filter)) to provide an alternative to `EnvFilter` which offers a more principled/structured way of doing tracing event filtering. Filtering on event field contents is a natural ability to have, and is required for feature parity with env_logger (transparent compatibility with which is a goal for tracing-filter, and not provided by `EnvFilter`, as it simply (at best) errors on `/filter` directives).

### Proposal

Change the signature of `Subscribe::on_event` to

> ```rust
> fn Subscribe::<C: Collect>::on_event(&self, event: &Event<'_>, ctx: Context<'_, C>) -> std::ops::ControlFlow<()>;
> ```

Call `on_event` starting from the top layer. Similar to how `Subscribe::enabled` is handled, if `on_event` returns

- `ControlFlow::Continue`, continue and call the next layer's `on_event`.
- `ControlFlow::Break`, stop calling `on_event`.

#### Drawbacks

- A slight complexity increase.
- Breaking change.
  - Mitigable with making this a new function defaulted to call the old one, for a complexity increase.
  - Mitigable by bundling with tracing_core 0.2.
- MSRV 1.55.0.
- Unknown unknowns.

### Alternatives

- Status quo; just don't allow layered filtering based on the contents of an event, and only filter on events' `Metadata`.
- Add a separate `Subscribe::event_enabled` rather than adding this functionality to `on_event`.
  - Drawback: potential duplication of logic between `event_enabled` and `on_event`.
- Go even further: `Subscribe::on_new_span`, `on_record`, `on_follows_from`, `on_event`, `on_enter`, `on_exit`, `on_close`, and `on_id_change` could all theoretically return `ControlFlow` and control whether lower layers see these callbacks. The author of this issue has not considered the ramifications of doing so, beyond that of `on_event`.
  - Of these, `on_new_span` and `on_record` seem the most promising; `on_enter`/`exit`/`close` seem potentially problematic; `on_follows_from` and `on_id_change` very much so.
It is impossible to dis-/en- able event processing based on event field contents in tracing_subsriber::Subsribe
diff --git a/tracing-core/src/collect.rs b/tracing-core/src/collect.rs
index 4bafc00d92..8c5ae3ff8a 100644
--- a/tracing-core/src/collect.rs
+++ b/tracing-core/src/collect.rs
@@ -57,6 +57,9 @@ use core::ptr::NonNull;
 ///   See also the [documentation on the callsite registry][cs-reg] for details
 ///   on [`register_callsite`].
 ///
+/// - [`event_enabled`] is called once before every call to the [`event`]
+///   method. This can be used to implement filtering on events once their field
+///   values are known, but before any processing is done in the `event` method.
 /// - [`clone_span`] is called every time a span ID is cloned, and [`try_close`]
 ///   is called when a span ID is dropped. By default, these functions do
 ///   nothing. However, they can be used to implement reference counting for
@@ -72,6 +75,8 @@ use core::ptr::NonNull;
 /// [`clone_span`]: Collect::clone_span
 /// [`try_close`]: Collect::try_close
 /// [cs-reg]: crate::callsite#registering-callsites
+/// [`event`]: Collect::event
+/// [`event_enabled`]: Collect::event_enabled
 pub trait Collect: 'static {
     // === Span registry methods ==============================================
 
@@ -288,6 +293,17 @@ pub trait Collect: 'static {
     /// follow from _b_), it may silently do nothing.
     fn record_follows_from(&self, span: &span::Id, follows: &span::Id);
 
+    /// Determine if an [`Event`] should be recorded.
+    ///
+    /// By default, this returns `true` and collectors can filter events in
+    /// [`event`][Self::event] without any penalty. However, when `event` is
+    /// more complicated, this can be used to determine if `event` should be
+    /// called at all, separating out the decision from the processing.
+    fn event_enabled(&self, event: &Event<'_>) -> bool {
+        let _ = event;
+        true
+    }
+
     /// Records that an [`Event`] has occurred.
     ///
     /// This method will be invoked when an Event is constructed by
@@ -688,6 +704,11 @@ where
         self.as_ref().record_follows_from(span, follows)
     }
 
+    #[inline]
+    fn event_enabled(&self, event: &Event<'_>) -> bool {
+        self.as_ref().event_enabled(event)
+    }
+
     #[inline]
     fn event(&self, event: &Event<'_>) {
         self.as_ref().event(event)
@@ -762,6 +783,11 @@ where
         self.as_ref().record_follows_from(span, follows)
     }
 
+    #[inline]
+    fn event_enabled(&self, event: &Event<'_>) -> bool {
+        self.as_ref().event_enabled(event)
+    }
+
     #[inline]
     fn event(&self, event: &Event<'_>) {
         self.as_ref().event(event)
diff --git a/tracing-core/src/dispatch.rs b/tracing-core/src/dispatch.rs
index 5b85dcde35..e95969037b 100644
--- a/tracing-core/src/dispatch.rs
+++ b/tracing-core/src/dispatch.rs
@@ -682,7 +682,10 @@ impl Dispatch {
     /// [`event`]: super::collect::Collect::event
     #[inline]
     pub fn event(&self, event: &Event<'_>) {
-        self.collector().event(event)
+        let collector = self.collector();
+        if collector.event_enabled(event) {
+            collector.event(event);
+        }
     }
 
     /// Records that a span has been can_enter.
diff --git a/tracing-subscriber/src/fmt/mod.rs b/tracing-subscriber/src/fmt/mod.rs
index 34fd7ed497..d7abce1635 100644
--- a/tracing-subscriber/src/fmt/mod.rs
+++ b/tracing-subscriber/src/fmt/mod.rs
@@ -393,6 +393,11 @@ where
         self.inner.record_follows_from(span, follows)
     }
 
+    #[inline]
+    fn event_enabled(&self, event: &Event<'_>) -> bool {
+        self.inner.event_enabled(event)
+    }
+
     #[inline]
     fn event(&self, event: &Event<'_>) {
         self.inner.event(event);
diff --git a/tracing-subscriber/src/reload.rs b/tracing-subscriber/src/reload.rs
index f2f875b77b..eb87630b99 100644
--- a/tracing-subscriber/src/reload.rs
+++ b/tracing-subscriber/src/reload.rs
@@ -106,6 +106,11 @@ where
         try_lock!(self.inner.read()).on_follows_from(span, follows, ctx)
     }
 
+    #[inline]
+    fn event_enabled(&self, event: &Event<'_>, ctx: subscribe::Context<'_, C>) -> bool {
+        try_lock!(self.inner.read(), else return false).event_enabled(event, ctx)
+    }
+
     #[inline]
     fn on_event(&self, event: &Event<'_>, ctx: subscribe::Context<'_, C>) {
         try_lock!(self.inner.read()).on_event(event, ctx)
diff --git a/tracing-subscriber/src/subscribe/layered.rs b/tracing-subscriber/src/subscribe/layered.rs
index 813bafebba..c601996b9e 100644
--- a/tracing-subscriber/src/subscribe/layered.rs
+++ b/tracing-subscriber/src/subscribe/layered.rs
@@ -138,6 +138,16 @@ where
         self.subscriber.on_follows_from(span, follows, self.ctx());
     }
 
+    fn event_enabled(&self, event: &Event<'_>) -> bool {
+        if self.subscriber.event_enabled(event, self.ctx()) {
+            // if the outer subscriber enables the event, ask the inner collector.
+            self.inner.event_enabled(event)
+        } else {
+            // otherwise, the event is disabled by this subscriber
+            false
+        }
+    }
+
     fn event(&self, event: &Event<'_>) {
         self.inner.event(event);
         self.subscriber.on_event(event, self.ctx());
@@ -280,6 +290,17 @@ where
         self.subscriber.on_follows_from(span, follows, ctx);
     }
 
+    #[inline]
+    fn event_enabled(&self, event: &Event<'_>, ctx: Context<'_, C>) -> bool {
+        if self.subscriber.event_enabled(event, ctx.clone()) {
+            // if the outer subscriber enables the event, ask the inner collector.
+            self.inner.event_enabled(event, ctx)
+        } else {
+            // otherwise, the event is disabled by this subscriber
+            false
+        }
+    }
+
     #[inline]
     fn on_event(&self, event: &Event<'_>, ctx: Context<'_, C>) {
         self.inner.on_event(event, ctx.clone());
diff --git a/tracing-subscriber/src/subscribe/mod.rs b/tracing-subscriber/src/subscribe/mod.rs
index f8d3edf52f..1715437028 100644
--- a/tracing-subscriber/src/subscribe/mod.rs
+++ b/tracing-subscriber/src/subscribe/mod.rs
@@ -417,6 +417,28 @@
 //! [`Interest::never()`] from its [`register_callsite`] method, filter
 //! evaluation will short-circuit and the span or event will be disabled.
 //!
+//! ### Enabling Interest
+//!
+//! Whenever an tracing event (or span) is emitted, it goes through a number of
+//! steps to determine how and how much it should be processed. The earlier an
+//! event is disabled, the less work has to be done to process the event, so
+//! subscribers that implement filtering should attempt to disable unwanted
+//! events as early as possible. In order, each event checks:
+//!
+//! - [`register_callsite`], once per callsite (roughly: once per time that
+//!   `event!` or `span!` is written in the source code; this is cached at the
+//!   callsite). See [`Collect::register_callsite`] and
+//!   [`tracing_core::callsite`] for a summary of how this behaves.
+//! - [`enabled`], once per emitted event (roughly: once per time that `event!`
+//!   or `span!` is *executed*), and only if `register_callsite` regesters an
+//!   [`Interest::sometimes`]. This is the main customization point to globally
+//!   filter events based on their [`Metadata`]. If an event can be disabled
+//!   based only on [`Metadata`], it should be, as this allows the construction
+//!   of the actual `Event`/`Span` to be skipped.
+//! - For events only (and not spans), [`event_enabled`] is called just before
+//!   processing the event. This gives subscribers one last chance to say that
+//!   an event should be filtered out, now that the event's fields are known.
+//!
 //! ## Per-Subscriber Filtering
 //!
 //! **Note**: per-subscriber filtering APIs currently require the [`"registry"` crate
@@ -639,6 +661,7 @@
 //! [the current span]: Context::current_span
 //! [`register_callsite`]: Subscribe::register_callsite
 //! [`enabled`]: Subscribe::enabled
+//! [`event_enabled`]: Subscribe::event_enabled
 //! [`on_enter`]: Subscribe::on_enter
 //! [`Subscribe::register_callsite`]: Subscribe::register_callsite
 //! [`Subscribe::enabled`]: Subscribe::enabled
@@ -827,6 +850,31 @@ where
     // seems like a good future-proofing measure as it may grow other methods later...
     fn on_follows_from(&self, _span: &span::Id, _follows: &span::Id, _ctx: Context<'_, C>) {}
 
+    /// Called before [`on_event`], to determine if `on_event` should be called.
+    ///
+    /// <div class="example-wrap" style="display:inline-block">
+    /// <pre class="ignore" style="white-space:normal;font:inherit;">
+    ///
+    /// **Note**: This method determines whether an event is globally enabled,
+    /// *not* whether the individual subscriber will be notified about the
+    /// event. This is intended to be used by subscibers that implement
+    /// filtering for the entire stack. Subscribers which do not wish to be
+    /// notified about certain events but do not wish to globally disable them
+    /// should ignore those events in their [on_event][Self::on_event].
+    ///
+    /// </pre></div>
+    ///
+    /// See [the trait-level documentation] for more information on filtering
+    /// with `Subscriber`s.
+    ///
+    /// [`on_event`]: Self::on_event
+    /// [`Interest`]: tracing_core::Interest
+    /// [the trait-level documentation]: #filtering-with-subscribers
+    #[inline] // collapse this to a constant please mrs optimizer
+    fn event_enabled(&self, _event: &Event<'_>, _ctx: Context<'_, C>) -> bool {
+        true
+    }
+
     /// Notifies this subscriber that an event has occurred.
     fn on_event(&self, _event: &Event<'_>, _ctx: Context<'_, C>) {}
 
@@ -1455,6 +1503,14 @@ where
         }
     }
 
+    #[inline]
+    fn event_enabled(&self, event: &Event<'_>, ctx: Context<'_, C>) -> bool {
+        match self {
+            Some(ref inner) => inner.event_enabled(event, ctx),
+            None => false,
+        }
+    }
+
     #[inline]
     fn on_event(&self, event: &Event<'_>, ctx: Context<'_, C>) {
         if let Some(ref inner) = self {
@@ -1534,6 +1590,11 @@ macro_rules! subscriber_impl_body {
             self.deref().on_follows_from(span, follows, ctx)
         }
 
+        #[inline]
+        fn event_enabled(&self, event: &Event<'_>, ctx: Context<'_, C>) -> bool {
+            self.deref().event_enabled(event, ctx)
+        }
+
         #[inline]
         fn on_event(&self, event: &Event<'_>, ctx: Context<'_, C>) {
             self.deref().on_event(event, ctx)

diff --git a/tracing-subscriber/tests/event_enabling.rs b/tracing-subscriber/tests/event_enabling.rs
new file mode 100644
index 0000000000..bb01a79f86
--- /dev/null
+++ b/tracing-subscriber/tests/event_enabling.rs
@@ -0,0 +1,81 @@
+#![cfg(feature = "registry")]
+
+use std::sync::{Arc, Mutex};
+use tracing::{collect::with_default, Collect, Event, Metadata};
+use tracing_subscriber::{prelude::*, registry, subscribe::Context, Subscribe};
+
+struct TrackingLayer {
+    enabled: bool,
+    event_enabled_count: Arc<Mutex<usize>>,
+    event_enabled: bool,
+    on_event_count: Arc<Mutex<usize>>,
+}
+
+impl<C> Subscribe<C> for TrackingLayer
+where
+    C: Collect + Send + Sync + 'static,
+{
+    fn enabled(&self, _metadata: &Metadata<'_>, _ctx: Context<'_, C>) -> bool {
+        self.enabled
+    }
+
+    fn event_enabled(&self, _event: &Event<'_>, _ctx: Context<'_, C>) -> bool {
+        *self.event_enabled_count.lock().unwrap() += 1;
+        self.event_enabled
+    }
+
+    fn on_event(&self, _event: &Event<'_>, _ctx: Context<'_, C>) {
+        *self.on_event_count.lock().unwrap() += 1;
+    }
+}
+
+#[test]
+fn event_enabled_is_only_called_once() {
+    let event_enabled_count = Arc::new(Mutex::default());
+    let count = event_enabled_count.clone();
+    let collector = registry().with(TrackingLayer {
+        enabled: true,
+        event_enabled_count,
+        event_enabled: true,
+        on_event_count: Arc::new(Mutex::default()),
+    });
+    with_default(collector, || {
+        tracing::error!("hiya!");
+    });
+
+    assert_eq!(1, *count.lock().unwrap());
+}
+
+#[test]
+fn event_enabled_not_called_when_not_enabled() {
+    let event_enabled_count = Arc::new(Mutex::default());
+    let count = event_enabled_count.clone();
+    let collector = registry().with(TrackingLayer {
+        enabled: false,
+        event_enabled_count,
+        event_enabled: true,
+        on_event_count: Arc::new(Mutex::default()),
+    });
+    with_default(collector, || {
+        tracing::error!("hiya!");
+    });
+
+    assert_eq!(0, *count.lock().unwrap());
+}
+
+#[test]
+fn event_disabled_does_disable_event() {
+    let on_event_count = Arc::new(Mutex::default());
+    let count = on_event_count.clone();
+    let collector = registry().with(TrackingLayer {
+        enabled: true,
+        event_enabled_count: Arc::new(Mutex::default()),
+        event_enabled: false,
+        on_event_count,
+    });
+    with_default(collector, || {
+        tracing::error!("hiya!");
+    });
+
+    assert_eq!(0, *count.lock().unwrap());
+}

{"event_outside_of_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "entered": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "handles_to_different_spans_with_the_same_metadata_are_not_equal": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "arced_collector": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "string_message_without_delims": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "no_collector_disables_global": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "non_blocking::test::multi_threaded_writes": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_hourly_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "nested_set_default": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "backtrace::tests::capture_unsupported": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::value_sets_with_fields_from_other_callsites_are_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::dispatch_is": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "follows_from_sync_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "spans_always_go_to_the_subscriber_that_tagged_them": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::future_error_ends_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_never_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::value_set_with_no_values_is_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::test_make_writer": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_structs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite::tests::linked_list_push_several": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_macros_dont_infinite_loop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "socket::cmsg_buffer_size_for_one_fd": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "clashy_expr_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "prefixed_span_macros": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "set_default_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "global_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "locals_with_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_tuples": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::level_from_str": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::record_error": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_closes_after_event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_refs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "parameters_with_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "numeric_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "borrow_val_events": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "override_everything": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "move_field_out_of_struct": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::future_enter_exit_is_reasonable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::events_dont_infinite_loop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::spans_dont_infinite_loop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "nonzeroi32_event_without_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_nested_tuples": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "capture_supported": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "enabled": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "follows_from_async_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "borrow_val_spans": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "locals_no_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "both_shorthands": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "new_span_with_target_and_log_level": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "record_new_values_for_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "self_expr_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "enter_exit_is_reasonable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "empty_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "skip": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "boxed_collector": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_closes_when_exited": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "prefixed_event_macros": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "entered_api": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite::tests::linked_list_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_is_send": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "custom_targets": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_shorthand": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_with_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_and_event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::test_rotations": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "default_parent_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "default_targets": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::sparse_value_sets_are_not_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "string_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "contextual_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "manual_box_pin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite_macro_api": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::empty_fields_are_skipped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::fields_from_other_callsets_are_skipped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_minutely_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "contextual_child": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_with_async_trait": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_child": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "cloning_a_span_calls_clone_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "non_blocking::test::backpressure_exerted": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "follows_from_current_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::empty_value_set_is_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::level_filter_is_usize_sized": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "named_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "record_new_value_for_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_daily_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_async": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "backtrace::tests::capture_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "one_with_everything": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_without_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "enter": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::stream_enter_exit_is_reasonable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_parent_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "expr_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_child_at_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "level_and_target": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::filter_level_conversion": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_enabled": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dropping_a_span_calls_drop_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "moved_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "float_values": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "impl_trait_return_type": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "two_expr_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "display_shorthand": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_tuple_structs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_mut": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "multiple_max_level_hints": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "custom_name_no_equals_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "custom_name_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "out_of_scope_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dotted_field_name": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field_shorthand_only": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::record_debug_fn": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::default_no_collector": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "handles_to_different_spans_are_not_equal": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_block_is_send": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "backtrace::tests::capture_supported": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "default_name_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::test_path_concatination": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_child_regardless_of_ctx": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_ret_and_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::default_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "borrowed_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_ret_and_ok": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_enabled": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_root_span_is_root_regardless_of_ctx": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_warn": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "generics": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "max_level_hints": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "message_without_delims": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "spans_always_go_to_the_subscriber_that_tagged_them_even_across_threads": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "filter_caching_is_lexically_scoped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "handles_to_the_same_span_are_equal": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "clone_and_drop_span_always_go_to_the_subscriber_that_tagged_the_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_with_async_trait_and_fields_expressions": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "events_dont_leak": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_mut_async": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "new_span_after_event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "methods": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_ends_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_err_dbg": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_root_span_is_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_everything": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_nested": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_only_enters_for_polls": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::level_filter_reprs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_dbg": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "manual_impl_future": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_early_return": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_with_non_rust_symbol": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "filters_are_reevaluated_for_different_call_sites": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite::tests::linked_list_push": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_with_async_trait_and_fields_expressions_with_generic_parameter": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "filters_are_not_reevaluated_for_the_same_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "wrapping_event_without_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "spans_dont_leak": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::span_follows_future_onto_threadpool": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_impl_type": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "drop_span_when_exiting_dispatchers_context": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_err_display_default": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::dispatch_downcasts": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata_macro_api": {"run": "PASS", "test": "NONE", "fix": "PASS"}}
{"event_outside_of_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "entered": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "handles_to_different_spans_with_the_same_metadata_are_not_equal": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "arced_collector": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "string_message_without_delims": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "no_collector_disables_global": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "non_blocking::test::multi_threaded_writes": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_hourly_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "nested_set_default": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "backtrace::tests::capture_unsupported": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::value_sets_with_fields_from_other_callsites_are_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::dispatch_is": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "follows_from_sync_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "spans_always_go_to_the_subscriber_that_tagged_them": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::future_error_ends_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_never_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::value_set_with_no_values_is_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::test_make_writer": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_structs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite::tests::linked_list_push_several": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_macros_dont_infinite_loop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "socket::cmsg_buffer_size_for_one_fd": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "clashy_expr_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "prefixed_span_macros": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "set_default_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "global_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "locals_with_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_tuples": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::level_from_str": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::record_error": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_closes_after_event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_refs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "parameters_with_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "numeric_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "borrow_val_events": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "override_everything": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "move_field_out_of_struct": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::future_enter_exit_is_reasonable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::events_dont_infinite_loop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::spans_dont_infinite_loop": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "nonzeroi32_event_without_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_nested_tuples": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "capture_supported": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "enabled": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "follows_from_async_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "borrow_val_spans": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "locals_no_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "both_shorthands": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "new_span_with_target_and_log_level": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "record_new_values_for_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "self_expr_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "enter_exit_is_reasonable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "empty_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "skip": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "boxed_collector": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_closes_when_exited": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "prefixed_event_macros": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "entered_api": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite::tests::linked_list_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_is_send": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "custom_targets": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_shorthand": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_with_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_and_event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::test_rotations": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "default_parent_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "default_targets": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::sparse_value_sets_are_not_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "string_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "contextual_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "manual_box_pin": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite_macro_api": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::empty_fields_are_skipped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::fields_from_other_callsets_are_skipped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_minutely_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "contextual_child": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_with_async_trait": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_child": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "cloning_a_span_calls_clone_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "non_blocking::test::backpressure_exerted": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "follows_from_current_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::empty_value_set_is_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::level_filter_is_usize_sized": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "named_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "record_new_value_for_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::write_daily_log": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_async": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "backtrace::tests::capture_empty": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "one_with_everything": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_without_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "enter": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::stream_enter_exit_is_reasonable": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_parent_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "expr_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_child_at_levels": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "level_and_target": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::filter_level_conversion": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "trace_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_enabled": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dropping_a_span_calls_drop_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "moved_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "float_values": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "impl_trait_return_type": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "two_expr_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "display_shorthand": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_tuple_structs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_mut": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "multiple_max_level_hints": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "custom_name_no_equals_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "custom_name_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "warn_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "out_of_scope_fields": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dotted_field_name": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field_shorthand_only": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "field::test::record_debug_fn": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_span_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::default_no_collector": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "handles_to_different_spans_are_not_equal": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_block_is_send": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "backtrace::tests::capture_supported": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "default_name_test": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "rolling::test::test_path_concatination": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_child_regardless_of_ctx": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_ret_and_err": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::default_dispatch": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "borrowed_field": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_ret_and_ok": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_enabled": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "info_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_root_span_is_root_regardless_of_ctx": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_warn": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "event_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "generics": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "max_level_hints": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "message_without_delims": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_span_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "spans_always_go_to_the_subscriber_that_tagged_them_even_across_threads": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "filter_caching_is_lexically_scoped": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "handles_to_the_same_span_are_equal": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "clone_and_drop_span_always_go_to_the_subscriber_that_tagged_the_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_with_async_trait_and_fields_expressions": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "events_dont_leak": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_mut_async": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "new_span_after_event": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "methods": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_ends_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_err_dbg": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "explicit_root_span_is_root": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "destructure_everything": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_nested": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_only_enters_for_polls": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata::tests::level_filter_reprs": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_dbg": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "manual_impl_future": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_early_return": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "error_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "span_with_non_rust_symbol": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "filters_are_reevaluated_for_different_call_sites": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "callsite::tests::linked_list_push": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "async_fn_with_async_trait_and_fields_expressions_with_generic_parameter": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "debug_with_parent": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "filters_are_not_reevaluated_for_the_same_span": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "wrapping_event_without_message": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "spans_dont_leak": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "tests::futures_01_tests::span_follows_future_onto_threadpool": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_impl_type": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "drop_span_when_exiting_dispatchers_context": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "test_err_display_default": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "dispatch::test::dispatch_downcasts": {"run": "PASS", "test": "NONE", "fix": "PASS"}, "metadata_macro_api": {"run": "PASS", "test": "NONE", "fix": "PASS"}}
{"passed_count": 200, "failed_count": 9, "skipped_count": 1, "passed_tests": ["event_outside_of_span", "entered", "handles_to_different_spans_with_the_same_metadata_are_not_equal", "arced_collector", "string_message_without_delims", "no_collector_disables_global", "non_blocking::test::multi_threaded_writes", "rolling::test::write_hourly_log", "nested_set_default", "backtrace::tests::capture_unsupported", "field::test::value_sets_with_fields_from_other_callsites_are_empty", "span_with_parent", "dispatch::test::dispatch_is", "trace_with_parent", "follows_from_sync_test", "spans_always_go_to_the_subscriber_that_tagged_them", "tests::futures_01_tests::future_error_ends_span", "rolling::test::write_never_log", "field::test::value_set_with_no_values_is_empty", "rolling::test::test_make_writer", "destructure_structs", "callsite::tests::linked_list_push_several", "event_macros_dont_infinite_loop", "socket::cmsg_buffer_size_for_one_fd", "clashy_expr_field", "prefixed_span_macros", "set_default_dispatch", "global_dispatch", "trace_span", "locals_with_message", "destructure_tuples", "metadata::tests::level_from_str", "field::test::record_error", "span_closes_after_event", "warn_with_parent", "destructure_refs", "parameters_with_fields", "warn_span", "info_root", "numeric_levels", "info", "borrow_val_events", "override_everything", "span", "move_field_out_of_struct", "tests::futures_01_tests::future_enter_exit_is_reasonable", "metadata_macro_api", "dispatch::test::events_dont_infinite_loop", "dispatch::test::spans_dont_infinite_loop", "nonzeroi32_event_without_message", "destructure_nested_tuples", "capture_supported", "span_root", "enabled", "info_span_root", "fields", "follows_from_async_test", "borrow_val_spans", "test", "locals_no_message", "both_shorthands", "new_span_with_target_and_log_level", "record_new_values_for_fields", "self_expr_field", "enter_exit_is_reasonable", "empty_field", "trace", "skip", "boxed_collector", "span_closes_when_exited", "prefixed_event_macros", "entered_api", "callsite::tests::linked_list_empty", "async_fn_is_send", "custom_targets", "debug_shorthand", "event_with_message", "span_and_event", "debug_root", "rolling::test::test_rotations", "default_parent_test", "default_targets", "field::test::sparse_value_sets_are_not_empty", "event_root", "string_field", "contextual_root", "callsite_macro_api", "field::test::empty_fields_are_skipped", "field::test::fields_from_other_callsets_are_skipped", "rolling::test::write_minutely_log", "contextual_child", "error_span_with_parent", "async_fn_with_async_trait", "debug_span_root", "explicit_child", "warn_root", "trace_span_root", "cloning_a_span_calls_clone_span", "non_blocking::test::backpressure_exerted", "follows_from_current_test", "field::test::empty_value_set_is_empty", "metadata::tests::level_filter_is_usize_sized", "named_levels", "debug", "record_new_value_for_field", "rolling::test::write_daily_log", "test_async", "backtrace::tests::capture_empty", "one_with_everything", "event_without_message", "enter", "tests::futures_01_tests::stream_enter_exit_is_reasonable", "info_with_parent", "explicit_parent_test", "expr_field", "explicit_child_at_levels", "trace_span_with_parent", "warn", "level_and_target", "metadata::tests::filter_level_conversion", "trace_root", "span_enabled", "dropping_a_span_calls_drop_span", "moved_field", "float_values", "impl_trait_return_type", "two_expr_fields", "display_shorthand", "destructure_tuple_structs", "warn_span_with_parent", "test_mut", "multiple_max_level_hints", "custom_name_no_equals_test", "custom_name_test", "warn_span_root", "out_of_scope_fields", "dotted_field_name", "event", "field_shorthand_only", "field::test::record_debug_fn", "error_span_root", "error_root", "dispatch::test::default_no_collector", "handles_to_different_spans_are_not_equal", "info_span", "async_block_is_send", "backtrace::tests::capture_supported", "error_span", "default_name_test", "rolling::test::test_path_concatination", "explicit_child_regardless_of_ctx", "test_ret_and_err", "dispatch::test::default_dispatch", "borrowed_field", "test_ret_and_ok", "event_enabled", "info_span_with_parent", "explicit_root_span_is_root_regardless_of_ctx", "test_warn", "event_with_parent", "generics", "max_level_hints", "message_without_delims", "debug_span_with_parent", "spans_always_go_to_the_subscriber_that_tagged_them_even_across_threads", "filter_caching_is_lexically_scoped", "handles_to_the_same_span_are_equal", "debug_span", "clone_and_drop_span_always_go_to_the_subscriber_that_tagged_the_span", "async_fn_with_async_trait_and_fields_expressions", "events_dont_leak", "test_mut_async", "new_span_after_event", "error", "methods", "error_ends_span", "test_err_dbg", "explicit_root_span_is_root", "destructure_everything", "async_fn_nested", "async_fn_only_enters_for_polls", "metadata::tests::level_filter_reprs", "test_dbg", "manual_impl_future", "test_early_return", "error_with_parent", "span_with_non_rust_symbol", "filters_are_reevaluated_for_different_call_sites", "callsite::tests::linked_list_push", "async_fn_with_async_trait_and_fields_expressions_with_generic_parameter", "debug_with_parent", "filters_are_not_reevaluated_for_the_same_span", "wrapping_event_without_message", "spans_dont_leak", "tests::futures_01_tests::span_follows_future_onto_threadpool", "test_impl_type", "drop_span_when_exiting_dispatchers_context", "test_err_display_default", "dispatch::test::dispatch_downcasts", "manual_box_pin"], "failed_tests": ["internal_null_byte", "large_message", "simple_metadata", "spans_field_collision", "multiple_spans_metadata", "multiline_message_trailing_newline", "multiline_message", "simple_message", "span_metadata"], "skipped_tests": ["non_blocking::test::logs_dropped_if_lossy"]}
{"passed_count": 0, "failed_count": 0, "skipped_count": 0, "passed_tests": [], "failed_tests": [], "skipped_tests": []}
{"passed_count": 200, "failed_count": 9, "skipped_count": 1, "passed_tests": ["event_outside_of_span", "entered", "handles_to_different_spans_with_the_same_metadata_are_not_equal", "arced_collector", "string_message_without_delims", "no_collector_disables_global", "non_blocking::test::multi_threaded_writes", "rolling::test::write_hourly_log", "nested_set_default", "backtrace::tests::capture_unsupported", "field::test::value_sets_with_fields_from_other_callsites_are_empty", "span_with_parent", "dispatch::test::dispatch_is", "trace_with_parent", "follows_from_sync_test", "spans_always_go_to_the_subscriber_that_tagged_them", "tests::futures_01_tests::future_error_ends_span", "rolling::test::write_never_log", "field::test::value_set_with_no_values_is_empty", "rolling::test::test_make_writer", "destructure_structs", "callsite::tests::linked_list_push_several", "event_macros_dont_infinite_loop", "socket::cmsg_buffer_size_for_one_fd", "clashy_expr_field", "prefixed_span_macros", "set_default_dispatch", "global_dispatch", "trace_span", "locals_with_message", "destructure_tuples", "metadata::tests::level_from_str", "field::test::record_error", "span_closes_after_event", "warn_with_parent", "destructure_refs", "parameters_with_fields", "warn_span", "info_root", "numeric_levels", "info", "borrow_val_events", "override_everything", "span", "move_field_out_of_struct", "tests::futures_01_tests::future_enter_exit_is_reasonable", "metadata_macro_api", "dispatch::test::events_dont_infinite_loop", "dispatch::test::spans_dont_infinite_loop", "nonzeroi32_event_without_message", "destructure_nested_tuples", "capture_supported", "enabled", "span_root", "info_span_root", "fields", "follows_from_async_test", "borrow_val_spans", "test", "locals_no_message", "both_shorthands", "new_span_with_target_and_log_level", "record_new_values_for_fields", "self_expr_field", "enter_exit_is_reasonable", "empty_field", "trace", "skip", "boxed_collector", "span_closes_when_exited", "prefixed_event_macros", "entered_api", "callsite::tests::linked_list_empty", "async_fn_is_send", "custom_targets", "debug_shorthand", "event_with_message", "span_and_event", "debug_root", "rolling::test::test_rotations", "default_parent_test", "default_targets", "field::test::sparse_value_sets_are_not_empty", "event_root", "string_field", "contextual_root", "callsite_macro_api", "field::test::empty_fields_are_skipped", "field::test::fields_from_other_callsets_are_skipped", "rolling::test::write_minutely_log", "contextual_child", "error_span_with_parent", "async_fn_with_async_trait", "debug_span_root", "explicit_child", "warn_root", "trace_span_root", "cloning_a_span_calls_clone_span", "non_blocking::test::backpressure_exerted", "follows_from_current_test", "field::test::empty_value_set_is_empty", "metadata::tests::level_filter_is_usize_sized", "named_levels", "debug", "record_new_value_for_field", "rolling::test::write_daily_log", "test_async", "backtrace::tests::capture_empty", "one_with_everything", "event_without_message", "enter", "tests::futures_01_tests::stream_enter_exit_is_reasonable", "info_with_parent", "explicit_parent_test", "expr_field", "explicit_child_at_levels", "trace_span_with_parent", "warn", "level_and_target", "metadata::tests::filter_level_conversion", "trace_root", "span_enabled", "dropping_a_span_calls_drop_span", "moved_field", "float_values", "impl_trait_return_type", "two_expr_fields", "display_shorthand", "destructure_tuple_structs", "warn_span_with_parent", "test_mut", "multiple_max_level_hints", "custom_name_no_equals_test", "custom_name_test", "warn_span_root", "out_of_scope_fields", "dotted_field_name", "event", "field_shorthand_only", "field::test::record_debug_fn", "error_span_root", "error_root", "dispatch::test::default_no_collector", "handles_to_different_spans_are_not_equal", "info_span", "async_block_is_send", "backtrace::tests::capture_supported", "error_span", "default_name_test", "rolling::test::test_path_concatination", "explicit_child_regardless_of_ctx", "test_ret_and_err", "dispatch::test::default_dispatch", "borrowed_field", "test_ret_and_ok", "event_enabled", "info_span_with_parent", "explicit_root_span_is_root_regardless_of_ctx", "test_warn", "event_with_parent", "generics", "max_level_hints", "message_without_delims", "debug_span_with_parent", "spans_always_go_to_the_subscriber_that_tagged_them_even_across_threads", "filter_caching_is_lexically_scoped", "handles_to_the_same_span_are_equal", "debug_span", "clone_and_drop_span_always_go_to_the_subscriber_that_tagged_the_span", "async_fn_with_async_trait_and_fields_expressions", "events_dont_leak", "test_mut_async", "new_span_after_event", "error", "methods", "error_ends_span", "test_err_dbg", "explicit_root_span_is_root", "destructure_everything", "async_fn_nested", "async_fn_only_enters_for_polls", "metadata::tests::level_filter_reprs", "test_dbg", "manual_impl_future", "test_early_return", "error_with_parent", "span_with_non_rust_symbol", "filters_are_reevaluated_for_different_call_sites", "callsite::tests::linked_list_push", "async_fn_with_async_trait_and_fields_expressions_with_generic_parameter", "debug_with_parent", "filters_are_not_reevaluated_for_the_same_span", "wrapping_event_without_message", "spans_dont_leak", "tests::futures_01_tests::span_follows_future_onto_threadpool", "test_impl_type", "drop_span_when_exiting_dispatchers_context", "test_err_display_default", "dispatch::test::dispatch_downcasts", "manual_box_pin"], "failed_tests": ["internal_null_byte", "large_message", "simple_metadata", "spans_field_collision", "multiple_spans_metadata", "multiline_message_trailing_newline", "multiline_message", "simple_message", "span_metadata"], "skipped_tests": ["non_blocking::test::logs_dropped_if_lossy"]}