Crates.io | tracing-span-capture |
lib.rs | tracing-span-capture |
version | 0.0.1 |
source | src |
created_at | 2023-03-29 10:44:48.350167 |
updated_at | 2023-03-29 10:44:48.350167 |
description | Capture and record logs for tracing span id |
homepage | |
repository | https://gitlab.com/mateuszkj/tracing-span-capture |
max_upload_size | |
id | 823989 |
size | 32,800 |
This crate allow testing if function emitted logs.
Example how to use it with cucumber, you can find here.
use tracing::{error, span, Level};
use tracing_span_capture::{RecordedLogs, TracingSpanCaptureLayer};
use tracing_subscriber::layer::SubscriberExt;
use tracing_subscriber::util::SubscriberInitExt;
fn tested_code() {
error!("try capture this");
}
fn main() {
tracing_subscriber::fmt()
.finish()
.with(TracingSpanCaptureLayer)
.init();
let span = span!(Level::INFO, "");
let record = RecordedLogs::new(&span);
{
let _enter = span.enter();
tested_code();
}
let logs = record.into_logs();
let last_log = logs.into_iter().rev().next().unwrap();
assert_eq!(last_log.message, "try capture this");
}
Licensed under either of: