//! Logging specifics const BANNER: &'static str = " ██████╗ ███████╗████████╗ ███╗ ██╗ ██████╗ ██████╗ ███████╗ ██╔══██╗██╔════╝╚══██╔══╝ ████╗ ██║██╔═══██╗██╔══██╗██╔════╝ ██████╔╝███████╗ ██║ ██╔██╗ ██║██║ ██║██║ ██║█████╗ ██╔══██╗╚════██║ ██║ ██║╚██╗██║██║ ██║██║ ██║██╔══╝ ██║ ██║███████║ ██║ ██║ ╚████║╚██████╔╝██████╔╝███████╗ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚══════╝"; use tracing_subscriber::{filter::LevelFilter, fmt, EnvFilter}; pub(crate) fn initialise() { let filter = EnvFilter::try_from_env("RST_LOG") .unwrap_or_default() .add_directive(LevelFilter::DEBUG.into()) .add_directive("async_std=error".parse().unwrap()) .add_directive("mio=error".parse().unwrap()); // Initialise the logger fmt().with_env_filter(filter).init(); info!("Initialising server..."); info!("{}", BANNER); info!("Available cores: unknown"); info!("Available RAM: unknown"); info!("Version: {}", crate::constants::VERSION); } #[macro_export] macro_rules! fatal { () => { error!("Unknown failure!"); std::process::exit(2) }; ($($arg:tt)*) => ({ error!($($arg)*); std::process::exit(2) }) }