feat: test tracer (#6025)

Co-authored-by: Matthias Seitz <matthias.seitz@outlook.de>
This commit is contained in:
Luca Provini
2024-01-13 13:38:08 +01:00
committed by GitHub
parent 030a1fd0f8
commit a075c31542
9 changed files with 56 additions and 18 deletions

View File

@ -42,7 +42,7 @@
)]
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
use tracing_subscriber::{filter::Directive, EnvFilter};
use tracing_subscriber::filter::Directive;
// Re-export tracing crates
pub use tracing;
@ -52,8 +52,11 @@ pub use tracing_subscriber;
pub use formatter::LogFormat;
pub use layers::{FileInfo, FileWorkerGuard};
pub use test_tracer::TestTracer;
mod formatter;
mod layers;
mod test_tracer;
use crate::layers::Layers;
use tracing::level_filters::LevelFilter;
@ -223,8 +226,5 @@ impl Tracer for RethTracer {
///
/// The subscriber will silently fail if it could not be installed.
pub fn init_test_tracing() {
let _ = tracing_subscriber::fmt()
.with_env_filter(EnvFilter::from_default_env())
.with_writer(std::io::stderr)
.try_init();
let _ = TestTracer::default().init();
}

View File

@ -0,0 +1,25 @@
use tracing_appender::non_blocking::WorkerGuard;
use tracing_subscriber::EnvFilter;
use crate::Tracer;
/// Initializes a tracing subscriber for tests.
///
/// The filter is configurable via `RUST_LOG`.
///
/// # Note
///
/// The subscriber will silently fail if it could not be installed.
#[derive(Debug, Clone, Default)]
#[non_exhaustive]
pub struct TestTracer;
impl Tracer for TestTracer {
fn init(self) -> eyre::Result<Option<WorkerGuard>> {
let _ = tracing_subscriber::fmt()
.with_env_filter(EnvFilter::from_default_env())
.with_writer(std::io::stderr)
.try_init();
Ok(None)
}
}