1#[allow(unused_imports)]
2pub mod prelude {
3 pub mod crates {
4 pub use color_eyre;
5 pub use tracing;
6 pub use tracing_subscriber;
7 }
8 pub use super::{observe, observe_info, trace_crate};
9 pub use color_eyre::{Report, Result};
10 pub use crates::*;
11 pub use tracing::{debug, error, event, info, instrument, trace, warn, Instrument, Level};
12 pub type Error = Report;
13}
14
15pub use prelude::crates::*;
16use prelude::*;
17pub use prelude::{Error, Report, Result};
18
19#[instrument]
20pub unsafe fn very_verbosely_trace_everything() -> Result<()> {
25 observe("trace")
26}
27
28#[instrument]
29pub fn observe_info() -> Result<()> {
31 observe("info")
32}
33
34#[instrument]
35pub fn trace_crate(crate_name: &str) -> Result<()> {
37 observe(&format!("{}=trace,info", crate_name))
38}
39
40#[instrument]
43pub fn observe(filter_str: &str) -> Result<()> {
44 color_eyre::install()?;
45
46 let filter = tracing_subscriber::EnvFilter::builder()
50 .with_default_directive(<tracing_subscriber::filter::Directive>::from(
51 tracing::level_filters::LevelFilter::TRACE,
52 ))
53 .parse_lossy(filter_str);
54
55 tracing_subscriber::fmt()
56 .with_env_filter(filter)
58 .init();
59
60 debug!("setup complete");
61
62 Ok(())
63}