diff --git a/include/spdlog/common.h b/include/spdlog/common.h index ff76ccc3..d066e903 100644 --- a/include/spdlog/common.h +++ b/include/spdlog/common.h @@ -60,9 +60,9 @@ #endif //__builtin_strrchr not defined #ifdef _WIN32 -#define SPDLOG_FILE_BASENAME SPDLOG_STRRCHR("\\" __FILE__, '\\') + 1 +#define SPDLOG_FILE_BASENAME(file) SPDLOG_STRRCHR("\\" file, '\\') + 1 #else -#define SPDLOG_FILE_BASENAME SPDLOG_STRRCHR("/" __FILE__, '/') + 1 +#define SPDLOG_FILE_BASENAME(file) SPDLOG_STRRCHR("/" file, '/') + 1 #endif namespace spdlog { diff --git a/include/spdlog/spdlog.h b/include/spdlog/spdlog.h index 506242ff..408c86e2 100644 --- a/include/spdlog/spdlog.h +++ b/include/spdlog/spdlog.h @@ -314,7 +314,9 @@ inline void critical(const wchar_t *fmt, const Args &... args) // #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_TRACE -#define SPDLOG_LOGGER_TRACE(logger, ...) logger->log(spdlog::source_loc{SPDLOG_FILE_BASENAME, __LINE__}, spdlog::level::trace, __VA_ARGS__) +#define SPDLOG_LOGGER_TRACE(logger, ...)\ + if(logger->should_log(spdlog::level::trace))\ + logger->log(spdlog::source_loc{SPDLOG_FILE_BASENAME(__FILE__), __LINE__}, spdlog::level::trace, __VA_ARGS__) #define SPDLOG_TRACE(...) SPDLOG_LOGGER_TRACE(spdlog::default_logger_raw(), __VA_ARGS__) #else #define SPDLOG_LOGGER_TRACE(logger, ...) (void)0