blob_indexer/utils/
telemetry.rs1use tracing::{subscriber::set_global_default, Subscriber};
2use tracing_log::LogTracer;
3use tracing_subscriber::{
4 fmt::{self, MakeWriter},
5 prelude::__tracing_subscriber_SubscriberExt,
6 EnvFilter, Registry,
7};
8
9pub fn get_subscriber<Sink>(env_filter: String, sink: Sink) -> impl Subscriber + Send + Sync
11where
12 Sink: for<'a> MakeWriter<'a> + Send + Sync + 'static,
13{
14 let env_filter =
15 EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new(env_filter));
16 let formatting_layer = fmt::layer()
17 .compact() .with_writer(sink);
19
20 Registry::default()
21 .with(env_filter)
22 .with(formatting_layer)
23 .with(sentry_tracing::layer())
24}
25
26pub fn init_subscriber(subscriber: impl Subscriber + Send + Sync) {
28 LogTracer::init().expect("Could not initialize formatting layer");
29
30 set_global_default(subscriber).expect("Failed to set subscriber");
31}