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 + Sync + Send)) -> Dispatch
pub fn from_static(collector: &'static (dyn Collect + Sync + Send)) -> Dispatch
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_close
method is functionally identical, but returnstrue
if 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.