#[allow(unused_imports)]
pub mod prelude {
pub mod crates {
pub use color_eyre;
pub use tracing;
pub use tracing_subscriber;
}
pub use super::{observe, observe_info, trace_crate};
pub use color_eyre::{Report, Result};
pub use crates::*;
pub use tracing::{debug, error, event, info, instrument, trace, warn, Instrument, Level};
pub type Error = Report;
}
pub use prelude::crates::*;
use prelude::*;
pub use prelude::{Error, Report, Result};
#[instrument]
pub unsafe fn very_verbosely_trace_everything() -> Result<()> {
observe("trace")
}
#[instrument]
pub fn observe_info() -> Result<()> {
observe("info")
}
#[instrument]
pub fn trace_crate(crate_name: &str) -> Result<()> {
observe(&format!("{}=trace,info", crate_name))
}
#[instrument]
pub fn observe(filter_str: &str) -> Result<()> {
color_eyre::install()?;
let filter = tracing_subscriber::EnvFilter::builder()
.with_default_directive(<tracing_subscriber::filter::Directive>::from(
tracing::level_filters::LevelFilter::TRACE,
))
.parse_lossy(filter_str);
tracing_subscriber::fmt()
.with_env_filter(filter)
.init();
debug!("setup complete");
Ok(())
}