headless_lms_base/
tracing.rs

1use anyhow::Result;
2use tracing_error::ErrorLayer;
3use tracing_log::LogTracer;
4use tracing_subscriber::{EnvFilter, layer::SubscriberExt};
5
6/**
7Sets up tokio tracing. Also makes sure that log statements from libraries respect the log level
8settings that have been set with RUST_LOG, for example:
9
10```no_run
11use std::env;
12unsafe {
13    env::set_var("RUST_LOG", "info,actix_web=info,sqlx=warn");
14}
15```
16*/
17pub fn setup_tracing() -> Result<()> {
18    let subscriber = tracing_subscriber::Registry::default()
19        .with(
20            tracing_subscriber::fmt::layer()
21                .event_format(tracing_subscriber::fmt::format().compact()),
22        )
23        .with(ErrorLayer::default())
24        .with(EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")));
25    tracing::subscriber::set_global_default(subscriber)?;
26    LogTracer::init()?;
27    Ok(())
28}