1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
/*! Logging with function names. ## Example ```rust use fnlog::{fn_debug, fn_error, fn_info, fn_trace, fn_warn}; fn hello() { fn_trace!("trace in hello"); fn_debug!("debug in hello"); fn_info!("info in hello"); fn_warn!("warn in hello"); fn_error!("error in hello"); } fn main() { env_logger::init(); fn_trace!("trace in main"); fn_debug!("debug in main"); fn_info!("info in main"); fn_warn!("warn in main"); fn_error!("error in main"); hello(); } ``` Assumes the binary is `main`: ``` $ RUST_LOG=trace ./main [2020-11-23T21:13:44Z TRACE main] [main::main] trace in main [2020-11-23T21:13:44Z DEBUG main] [main::main] debug in main [2020-11-23T21:13:44Z INFO main] [main::main] info in main [2020-11-23T21:13:44Z WARN main] [main::main] warn in main [2020-11-23T21:13:44Z ERROR main] [main::main] error in main [2020-11-23T21:13:44Z TRACE main] [main::hello] trace in hello [2020-11-23T21:13:44Z DEBUG main] [main::hello] debug in hello [2020-11-23T21:13:44Z INFO main] [main::hello] info in hello [2020-11-23T21:13:44Z WARN main] [main::hello] warn in hello [2020-11-23T21:13:44Z ERROR main] [main::hello] error in hello ``` */ #[macro_export] macro_rules! fn_trace { ($x:expr $(, $($y:expr),+)?) => { log::trace!(concat!("[{}] ", $x), stdext::function_name!() $(, $($y),+)?); }; } #[macro_export] macro_rules! fn_debug { ($x:expr $(, $($y:expr),+)?) => { log::debug!(concat!("[{}] ", $x), stdext::function_name!() $(, $($y),+)?); }; } #[macro_export] macro_rules! fn_info { ($x:expr $(, $($y:expr),+)?) => { log::info!(concat!("[{}] ", $x), stdext::function_name!() $(, $($y),+)?); }; } #[macro_export] macro_rules! fn_warn { ($x:expr $(, $($y:expr),+)?) => { log::warn!(concat!("[{}] ", $x), stdext::function_name!() $(, $($y),+)?); }; } #[macro_export] macro_rules! fn_error { ($x:expr $(, $($y:expr),+)?) => { log::error!(concat!("[{}] ", $x), stdext::function_name!() $(, $($y),+)?); }; }