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)
#define SPDLOG_LOGGER_CALL(logger, level, ...) \
do \
{ \
if (logger->should_log(level) || logger->should_backtrace()) \
logger->log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__); \
if ((logger)->should_log(level) || (logger)->should_backtrace()) \
(logger)->log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__); \
} while (0)
#if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_TRACE
......
......@@ -40,6 +40,14 @@ TEST_CASE("disable param evaluation", "[macros]")
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
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