in src/kvp.rs [234:275]
fn on_event(&self, event: &tracing::Event<'_>, ctx: TracingContext<'_, S>) {
let mut event_message = String::new();
let mut visitor = StringVisitor {
string: &mut event_message,
};
event.record(&mut visitor);
if let Some(span) = ctx.lookup_current() {
let mut extensions = span.extensions_mut();
if event.metadata().level() == &tracing::Level::ERROR {
extensions.insert(SpanStatus::Failure);
}
let span_context = span.metadata();
let span_id: Uuid = Uuid::new_v4();
let event_time = SystemTime::now()
.duration_since(UNIX_EPOCH)
.unwrap_or_else(|_| {
span.extensions()
.get::<MyInstant>()
.map(|instant| instant.elapsed())
.unwrap_or_default()
});
let event_time_dt = DateTime::<Utc>::from(UNIX_EPOCH + event_time)
.format("%Y-%m-%dT%H:%M:%S%.3fZ");
let event_value =
format!("Time: {} | Event: {}", event_time_dt, event_message);
self.handle_kvp_operation(
event.metadata().level().as_str(),
span_context.name(),
&span_id.to_string(),
&event_value,
);
}
}