Skip to main content

csh/log/
macros.rs

1//! Logging macros for convenient logging throughout the codebase
2//!
3//! These macros provide a simple interface to the logging system:
4//! - `debug_enabled!()` - Check if debug mode is enabled
5//! - `log_debug!(...)` - Log debug messages
6//! - `log_info!(...)` - Log informational messages
7//! - `log_warn!(...)` - Log warning messages
8//! - `log_error!(...)` - Log error messages
9//! - `log_ssh!(...)` - Log SSH session output
10
11/// Check if debug logging is enabled
12#[macro_export]
13macro_rules! debug_enabled {
14    () => {{ $crate::log::LOGGER.is_debug_enabled() }};
15}
16
17/// Log a debug message
18#[macro_export]
19macro_rules! log_debug {
20    ($($arg:tt)*) => {
21        let _ = $crate::log::LOGGER.log_debug(&format!($($arg)*));
22    };
23}
24
25/// Log an informational message
26#[macro_export]
27macro_rules! log_info {
28    ($($arg:tt)*) => {
29        let _ = $crate::log::LOGGER.log_info(&format!($($arg)*));
30    };
31}
32
33/// Log a warning message
34#[macro_export]
35macro_rules! log_warn {
36    ($($arg:tt)*) => {
37        let _ = $crate::log::LOGGER.log_warn(&format!($($arg)*));
38    };
39}
40
41/// Log an error message
42#[macro_export]
43macro_rules! log_error {
44    ($($arg:tt)*) => {
45        let _ = $crate::log::LOGGER.log_error(&format!($($arg)*));
46    };
47}
48
49/// Log SSH session output
50#[macro_export]
51macro_rules! log_ssh {
52    ($($arg:tt)*) => {
53        let _ = $crate::log::LOGGER.log_ssh(&format!($($arg)*));
54    };
55}