diff --git a/include/spdlog/details/logger_impl.h b/include/spdlog/details/logger_impl.h index a337b359..7a9476b1 100644 --- a/include/spdlog/details/logger_impl.h +++ b/include/spdlog/details/logger_impl.h @@ -59,10 +59,8 @@ inline void spdlog::logger::set_pattern(const std::string& pattern) template -inline void spdlog::logger::log(level::level_enum lvl, const char* fmt, const Args&... args) +inline void spdlog::logger::log_nofilter(level::level_enum lvl, const char* fmt, const Args&... args) { - if (!should_log(lvl)) return; - try { details::log_msg log_msg(&_name, lvl); @@ -80,9 +78,8 @@ inline void spdlog::logger::log(level::level_enum lvl, const char* fmt, const Ar } template -inline void spdlog::logger::log(level::level_enum lvl, const char* msg) +inline void spdlog::logger::log_nofilter(level::level_enum lvl, const char* msg) { - if (!should_log(lvl)) return; try { details::log_msg log_msg(&_name, lvl); @@ -97,13 +94,11 @@ inline void spdlog::logger::log(level::level_enum lvl, const char* msg) { _err_handler("Unknown exception"); } - } template -inline void spdlog::logger::log(level::level_enum lvl, const T& msg) +inline void spdlog::logger::log_nofilter(level::level_enum lvl, const T& msg) { - if (!should_log(lvl)) return; try { details::log_msg log_msg(&_name, lvl); @@ -120,6 +115,23 @@ inline void spdlog::logger::log(level::level_enum lvl, const T& msg) } } +template +inline void spdlog::logger::log(level::level_enum lvl, const char* fmt, const Args&... args) +{ + if (should_log(lvl)) log_nofilter(lvl, fmt, args...); +} + +template +inline void spdlog::logger::log(level::level_enum lvl, const char* msg) +{ + if (should_log(lvl)) log_nofilter(lvl, msg); +} + +template +inline void spdlog::logger::log(level::level_enum lvl, const T& msg) +{ + if (should_log(lvl)) log_nofilter(lvl, msg); +} template inline void spdlog::logger::trace(const char* fmt, const Args&... args) diff --git a/include/spdlog/logger.h b/include/spdlog/logger.h index e998999e..f69fbd5c 100644 --- a/include/spdlog/logger.h +++ b/include/spdlog/logger.h @@ -37,6 +37,8 @@ public: template void log(level::level_enum lvl, const char* fmt, const Args&... args); template void log(level::level_enum lvl, const char* msg); + template void log_nofilter(level::level_enum lvl, const char* fmt, const Args&... args); + template void log_nofilter(level::level_enum lvl, const char* msg); template void trace(const char* fmt, const Args&... args); template void debug(const char* fmt, const Args&... args); template void info(const char* fmt, const Args&... args); @@ -45,6 +47,7 @@ public: template void critical(const char* fmt, const Args&... args); template void log(level::level_enum lvl, const T&); + template void log_nofilter(level::level_enum lvl, const T&); template void trace(const T&); template void debug(const T&); template void info(const T&);