//! Custom logging macros, with the same names as `log` crate's `trace!`, `debug!`, `info!`, `warn!`, `error!`, //! but different behavior: automatically prepend `file!()` information to the message. //! //! # Usage //! ```ignore //! trace!("value = {}", x); //! debug!("something happened"); //! info!("user {} logged in", username); //! warn!("disk space low: {} GB", free); //! error!("failed to open file: {}", path); //! ``` //! //! Expands to: //! ```ignore //! ::log::trace!("[{}]: {}", file!(), format!("value = {}", x)); //! ::log::debug!("[{}]: {}", file!(), format!("something happened")); //! ... //! ``` #[macro_export] macro_rules! trace { ($($arg:tt)*) => { ::log::trace!("[{}]: {}", file!(), format!($($arg)*)); }; } #[macro_export] macro_rules! debug { ($($arg:tt)*) => { ::log::debug!("[{}]: {}", file!(), format!($($arg)*)); }; } #[macro_export] macro_rules! info { ($($arg:tt)*) => { ::log::info!("[{}]: {}", file!(), format!($($arg)*)); }; } #[macro_export] macro_rules! warn { ($($arg:tt)*) => { ::log::warn!("[{}]: {}", file!(), format!($($arg)*)); }; } #[macro_export] macro_rules! error { ($($arg:tt)*) => { ::log::error!("[{}]: {}", file!(), format!($($arg)*)); }; }