diff --git a/example/example.cpp b/example/example.cpp index b62c559a..b8e80849 100644 --- a/example/example.cpp +++ b/example/example.cpp @@ -6,6 +6,10 @@ // spdlog usage example // // + +#define SPDLOG_TRACE_ON +#define SPDLOG_DEBUG_ON + #include "spdlog/spdlog.h" #include @@ -40,6 +44,8 @@ int main(int, char*[]) console->info("Positional args are {1} {0}..", "too", "supported"); console->info("{:<30}", "left aligned"); + SPDLOG_DEBUG_IF(console, true, "This is a debug log"); + spd::get("console")->info("loggers can be retrieved from a global registry using the spdlog::get(logger_name) function"); @@ -74,6 +80,8 @@ int main(int, char*[]) // define SPDLOG_DEBUG_ON or SPDLOG_TRACE_ON SPDLOG_TRACE(console, "Enabled only #ifdef SPDLOG_TRACE_ON..{} ,{}", 1, 3.23); SPDLOG_DEBUG(console, "Enabled only #ifdef SPDLOG_DEBUG_ON.. {} ,{}", 1, 3.23); + SPDLOG_DEBUG_IF(console, true, "This is a debug log"); + // Asynchronous logging is very fast.. // Just call spdlog::set_async_mode(q_size) and all created loggers from now on will be asynchronous.. diff --git a/include/spdlog/spdlog.h b/include/spdlog/spdlog.h index 9170f1d2..fb4ea59e 100644 --- a/include/spdlog/spdlog.h +++ b/include/spdlog/spdlog.h @@ -162,23 +162,25 @@ void drop_all(); // SPDLOG_TRACE(my_logger, "some trace message"); // SPDLOG_TRACE(my_logger, "another trace message {} {}", 1, 2); // SPDLOG_DEBUG(my_logger, "some debug message {} {}", 3, 4); +// SPDLOG_DEBUG_IF(my_logger, true, "some debug message {} {}", 3, 4); /////////////////////////////////////////////////////////////////////////////// #ifdef SPDLOG_TRACE_ON #define SPDLOG_STR_H(x) #x #define SPDLOG_STR_HELPER(x) SPDLOG_STR_H(x) #define SPDLOG_TRACE(logger, ...) logger->trace("[" __FILE__ " line #" SPDLOG_STR_HELPER(__LINE__) "] " __VA_ARGS__) +#define SPDLOG_TRACE_IF(logger, flag, ...) logger->trace_if(flag, "[" __FILE__ " line #" SPDLOG_STR_HELPER(__LINE__) "] " __VA_ARGS__) #else #define SPDLOG_TRACE(logger, ...) #endif #ifdef SPDLOG_DEBUG_ON #define SPDLOG_DEBUG(logger, ...) logger->debug(__VA_ARGS__) +#define SPDLOG_DEBUG_IF(logger, flag, ...) logger->debug_if(flag, __VA_ARGS__) #else #define SPDLOG_DEBUG(logger, ...) #endif - }