diff --git a/include/spdlog/logger.h b/include/spdlog/logger.h index b0e5d2f9..bc627c4b 100644 --- a/include/spdlog/logger.h +++ b/include/spdlog/logger.h @@ -63,13 +63,8 @@ public: void swap(spdlog::logger &other); template - void log(source_loc loc, level::level_enum lvl, const char *fmt, const Args &... args) + void force_log(source_loc loc, level::level_enum lvl, const char *fmt, const Args &... args) { - if (!should_log(lvl)) - { - return; - } - try { fmt::memory_buffer buf; @@ -87,6 +82,15 @@ public: } } + template + void log(source_loc loc, level::level_enum lvl, const char *fmt, const Args &... args) + { + if (should_log(lvl)) + { + force_log(loc, lvl, fmt, args...); + } + } + template void log(level::level_enum lvl, const char *fmt, const Args &... args) { diff --git a/include/spdlog/spdlog.h b/include/spdlog/spdlog.h index dfa42145..9e8070c3 100644 --- a/include/spdlog/spdlog.h +++ b/include/spdlog/spdlog.h @@ -27,8 +27,9 @@ using default_factory = synchronous_factory; // Create and register a logger with a templated sink type // The logger's level, formatter and flush level will be set according the // global settings. +// // Example: -// spdlog::create("logger_name", "dailylog_filename", 11, 59); +// spdlog::create("logger_name", "dailylog_filename", 11, 59); template inline std::shared_ptr create(std::string logger_name, SinkArgs &&... sink_args) { @@ -267,7 +268,7 @@ inline void critical(const wchar_t *fmt, const Args &... args) do \ { \ if (logger->should_log(level)) \ - logger->log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__); \ + logger->force_log(spdlog::source_loc{__FILE__, __LINE__, SPDLOG_FUNCTION}, level, __VA_ARGS__); \ } while (0) #if SPDLOG_ACTIVE_LEVEL <= SPDLOG_LEVEL_TRACE