solverforge_console/
lib.rs1mod banner;
13mod format;
14mod layer;
15mod time;
16mod visitor;
17
18pub use layer::SolverConsoleLayer;
19
20use std::sync::OnceLock;
21use tracing_subscriber::layer::SubscriberExt;
22use tracing_subscriber::util::SubscriberInitExt;
23use tracing_subscriber::EnvFilter;
24
25static INIT: OnceLock<()> = OnceLock::new();
26
27pub fn init() {
32 INIT.get_or_init(|| {
33 banner::print_banner();
34
35 let filter = EnvFilter::builder()
36 .with_default_directive("solverforge_solver=info".parse().unwrap())
37 .from_env_lossy()
38 .add_directive("solverforge_dynamic=info".parse().unwrap());
39
40 let _ = tracing_subscriber::registry()
41 .with(filter)
42 .with(SolverConsoleLayer)
43 .try_init();
44 });
45}