pub struct Event<'a> { /* private fields */ }
Expand description
Event
s represent single points in time where something occurred during the
execution of a program.
An Event
can be compared to a log record in unstructured logging, but with
two key differences:
Event
s exist within the context of a span. Unlike log lines, they may be located within the trace tree, allowing visibility into the temporal context in which the event occurred, as well as the source code location.- Like spans,
Event
s have structured key-value data known as fields, which may include textual message. In general, a majority of the data associated with an event should be in the event’s fields rather than in the textual message, as the fields are more structured.
Implementations§
§impl<'a> Event<'a>
impl<'a> Event<'a>
pub fn dispatch(metadata: &'static Metadata<'static>, fields: &'a ValueSet<'_>)
pub fn dispatch(metadata: &'static Metadata<'static>, fields: &'a ValueSet<'_>)
Constructs a new Event
with the specified metadata and set of values,
and observes it with the current subscriber.
pub fn new(
metadata: &'static Metadata<'static>,
fields: &'a ValueSet<'a>
) -> Event<'a>
pub fn new( metadata: &'static Metadata<'static>, fields: &'a ValueSet<'a> ) -> Event<'a>
Returns a new Event
in the current span, with the specified metadata
and set of values.
pub fn new_child_of(
parent: impl Into<Option<Id>>,
metadata: &'static Metadata<'static>,
fields: &'a ValueSet<'a>
) -> Event<'a>
pub fn new_child_of( parent: impl Into<Option<Id>>, metadata: &'static Metadata<'static>, fields: &'a ValueSet<'a> ) -> Event<'a>
Returns a new Event
as a child of the specified span, with the
provided metadata and set of values.
pub fn child_of(
parent: impl Into<Option<Id>>,
metadata: &'static Metadata<'static>,
fields: &'a ValueSet<'_>
)
pub fn child_of( parent: impl Into<Option<Id>>, metadata: &'static Metadata<'static>, fields: &'a ValueSet<'_> )
Constructs a new Event
with the specified metadata and set of values,
and observes it with the current subscriber and an explicit parent.
pub fn record(&self, visitor: &mut dyn Visit)
pub fn record(&self, visitor: &mut dyn Visit)
Visits all the fields on this Event
with the specified visitor.
Examples found in repository?
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
fn on_event(
&self,
event: &tracing::Event<'_>,
_ctx: tracing_subscriber::layer::Context<'_, S>,
) {
// In order to obtain the log message, we have to create a struct that implements
// Visit and holds a reference to our string. Then we use the `record` method and
// the struct to modify the reference to hold the message string.
let mut message = None;
event.record(&mut CaptureLayerVisitor(&mut message));
if let Some(message) = message {
// You can obtain metadata like this, but we wont use it for this example.
let _metadata = event.metadata();
self.sender
.send(LogEvent { message })
.expect("LogEvents resource no longer exists!");
}
}
pub fn metadata(&self) -> &'static Metadata<'static>
pub fn metadata(&self) -> &'static Metadata<'static>
Returns metadata describing this Event
.
Examples found in repository?
More examples
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
fn on_event(
&self,
event: &tracing::Event<'_>,
_ctx: tracing_subscriber::layer::Context<'_, S>,
) {
// In order to obtain the log message, we have to create a struct that implements
// Visit and holds a reference to our string. Then we use the `record` method and
// the struct to modify the reference to hold the message string.
let mut message = None;
event.record(&mut CaptureLayerVisitor(&mut message));
if let Some(message) = message {
// You can obtain metadata like this, but we wont use it for this example.
let _metadata = event.metadata();
self.sender
.send(LogEvent { message })
.expect("LogEvents resource no longer exists!");
}
}
pub fn is_contextual(&self) -> bool
pub fn is_contextual(&self) -> bool
Returns true if the new event’s parent should be determined based on the current context.
If this is true and the current thread is currently inside a span, then that span should be the new event’s parent. Otherwise, if the current thread is not inside a span, then the new event will be the root of its own trace tree.
Trait Implementations§
§impl<'a> NormalizeEvent<'a> for Event<'a>
impl<'a> NormalizeEvent<'a> for Event<'a>
§fn normalized_metadata(&'a self) -> Option<Metadata<'a>>
fn normalized_metadata(&'a self) -> Option<Metadata<'a>>
Event
comes from a log
, this method provides a new
normalized Metadata
which has all available attributes
from the original log, including file
, line
, module_path
and target
.
Returns None
is the Event
is not issued from a log
.Auto Trait Implementations§
impl<'a> Freeze for Event<'a>
impl<'a> !RefUnwindSafe for Event<'a>
impl<'a> !Send for Event<'a>
impl<'a> !Sync for Event<'a>
impl<'a> Unpin for Event<'a>
impl<'a> !UnwindSafe for Event<'a>
Blanket Implementations§
§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more