capybara-core 0.0.1-alpha.1

A reverse proxy in Rust, which is inspired from Nginx/OpenResty/Envoy.
Documentation
#[macro_export]
macro_rules! xdebug (
    ($k:expr, #$tag:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            slog::log!(l, slog::Level::Debug, $tag, $($args)*)
        }
    };
    ($k:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            slog::log!(l, slog::Level::Debug, "", $($args)*)
        }
    };
);

#[macro_export]
macro_rules! xinfo (
    ($k:expr, #$tag:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            slog::log!(l, slog::Level::Info, $tag, $($args)*)
        }
    };
    ($k:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            slog::log!(l, slog::Level::Info, "", $($args)*)
        }
    };
);

#[macro_export]
macro_rules! xwarn (
    ($k:expr, #$tag:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            slog::log!(l, slog::Level::Warning, $tag, $($args)*)
        }
    };
    ($k:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            slog::log!(l, slog::Level::Warning, "", $($args)*)
        }
    };
);

#[macro_export]
macro_rules! xerror (
    ($k:expr, #$tag:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            logx::log!(l, slog::Level::Error, $tag, $($args)*)
        }
    };
    ($k:expr, $($args:tt)*) => {
        let r = $crate::logger::LOGGERS.read();
        if let Some(l) = r.get(&$k){
            logx::log!(l, slog::Level::Error, "", $($args)*)
        }
    };
);

#[cfg(test)]
mod logger_tests {
    use crate::logger::Key;

    #[test]
    fn test_logger() {
        xinfo!(Key::default(), "{}", "1234");
    }
}