Commit eb4a169c authored by Paul Kunysch's avatar Paul Kunysch

Improve log macros

parent 6f6cadf3
...@@ -288,8 +288,8 @@ inline void critical(wstring_view_t fmt, const Args &... args) ...@@ -288,8 +288,8 @@ inline void critical(wstring_view_t fmt, const Args &... args)
#define SPDLOG_LOGGER_CALL(logger, level, ...) \ #define SPDLOG_LOGGER_CALL(logger, level, ...) \
do \ do \
{ \ { \
if (logger->should_log(level) || logger->should_backtrace()) \ if ((logger)->should_log(level) || (logger)->should_backtrace()) \
logger->log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__); \ (logger)->log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__); \
} while (0) } while (0)
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_TRACE #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_TRACE
......
...@@ -40,6 +40,14 @@ TEST_CASE("disable param evaluation", "[macros]") ...@@ -40,6 +40,14 @@ TEST_CASE("disable param evaluation", "[macros]")
SPDLOG_TRACE("Test message {}", throw std::runtime_error("Should not be evaluated")); SPDLOG_TRACE("Test message {}", throw std::runtime_error("Should not be evaluated"));
} }
TEST_CASE("compile with reference to logger", "[macros]")
{
auto logger = spdlog::create<spdlog::sinks::null_sink_mt>("refmacro");
auto& ref = *logger;
SPDLOG_LOGGER_TRACE(&ref, "Test message 1");
SPDLOG_LOGGER_DEBUG(&ref, "Test message 2");
}
// ensure that even if right macro level is on- don't evaluate if the logger's level is not high enough // ensure that even if right macro level is on- don't evaluate if the logger's level is not high enough
TEST_CASE("disable param evaluation2", "[macros]") TEST_CASE("disable param evaluation2", "[macros]")
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment