pub struct Dispatch { /* private fields */ }Expand description
Dispatch trace data to a Collect.
Implementations§
Source§impl Dispatch
impl Dispatch
Sourcepub fn from_static(collector: &'static (dyn Collect + Send + Sync)) -> Self
pub fn from_static(collector: &'static (dyn Collect + Send + Sync)) -> Self
Returns a Dispatch that forwards to the given static collector.
Unlike [Dispatch::new], this function is always available on all
platforms, even when the std or alloc features are disabled.
In order to use from_static, the Collector itself must be stored in
a static. For example:
struct MyCollector {
// ...
}
impl tracing_core::Collect for MyCollector {
// ...
}
static COLLECTOR: MyCollector = MyCollector {
// ...
};
fn main() {
use tracing_core::dispatch::{self, Dispatch};
let dispatch = Dispatch::from_static(&COLLECTOR);
dispatch::set_global_default(dispatch)
.expect("no global default collector should have been set previously!");
}Constructing the collector in a static initializer may make some forms
of runtime configuration more challenging. If this is the case, users
with access to liballoc or the Rust standard library are encouraged to
use [Dispatch::new] rather than from_static. no_std users who
cannot allocate or do not have access to liballoc may want to consider
the once_cell crate, or another library which allows lazy
initialization of statics.
Sourcepub fn register_callsite(
&self,
metadata: &'static Metadata<'static>,
) -> Interest
pub fn register_callsite( &self, metadata: &'static Metadata<'static>, ) -> Interest
Registers a new callsite with this collector, returning whether or not the collector is interested in being notified about the callsite.
This calls the register_callsite function on the Collect
that this Dispatch forwards to.
Sourcepub fn new_span(&self, span: &Attributes<'_>) -> Id
pub fn new_span(&self, span: &Attributes<'_>) -> Id
Sourcepub fn record_follows_from(&self, span: &Id, follows: &Id)
pub fn record_follows_from(&self, span: &Id, follows: &Id)
Adds an indication that span follows from the span with the id
follows.
This calls the record_follows_from function on the Collect
that this Dispatch forwards to.
Sourcepub fn clone_span(&self, id: &Id) -> Id
pub fn clone_span(&self, id: &Id) -> Id
Notifies the collector that a span ID has been cloned.
This function must only be called with span IDs that were returned by
this Dispatch’s new_span function. The tracing crate upholds
this guarantee and any other libraries implementing instrumentation APIs
must as well.
This calls the clone_span function on the Collect that this
Dispatch forwards to.
Sourcepub fn drop_span(&self, id: Id)
👎Deprecated since 0.1.2: use Dispatch::try_close instead
pub fn drop_span(&self, id: Id)
Dispatch::try_close insteadNotifies the collector that a span ID has been dropped.
This function must only be called with span IDs that were returned by
this Dispatch’s new_span function. The tracing crate upholds
this guarantee and any other libraries implementing instrumentation APIs
must as well.
This calls the drop_span function on the Collect that this
Dispatch forwards to.
Deprecated: The
try_closemethod is functionally identical, but returnstrueif the span is now closed. It should be used instead of this method.
Sourcepub fn try_close(&self, id: Id) -> bool
pub fn try_close(&self, id: Id) -> bool
Notifies the collector that a span ID has been dropped, and returns
true if there are now 0 IDs referring to that span.
This function must only be called with span IDs that were returned by
this Dispatch’s new_span function. The tracing crate upholds
this guarantee and any other libraries implementing instrumentation APIs
must as well.
This calls the try_close function on the Collect trait
that this Dispatch forwards to.