1use std::panic;
4use std::process::exit;
5use tracing::level_filters::LevelFilter;
6use tracing_subscriber::layer::SubscriberExt;
7use tracing_subscriber::util::SubscriberInitExt;
8use tracing_subscriber::{EnvFilter, Layer, fmt};
9
10pub fn set_exit_on_panic() {
13 let default_panic_hook = panic::take_hook();
14 panic::set_hook(Box::new(move |panic_info| {
15 default_panic_hook(panic_info);
16 exit(1);
17 }));
18}
19
20pub fn init_logger() {
22 tracing_subscriber::registry()
23 .with(
24 fmt::layer().with_filter(
25 EnvFilter::builder()
26 .with_default_directive(LevelFilter::INFO.into())
27 .from_env_lossy(),
28 ),
29 )
30 .init();
31}