mirror of
https://github.com/gabime/spdlog.git
synced 2026-04-10 11:34:29 +08:00
Fix format_string propagation (#3543)
This commit is contained in:
@@ -77,20 +77,16 @@ public:
|
|||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void log(source_loc loc, level::level_enum lvl, format_string_t<Args...> fmt, Args &&...args) {
|
void log(source_loc loc, level::level_enum lvl, format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
#if defined(SPDLOG_USE_STD_FORMAT) && __cpp_lib_format < 202207L
|
||||||
log_(loc, lvl, fmt.get(), std::forward<Args>(args)...);
|
log_(loc, lvl, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
#else
|
||||||
log_(loc, lvl, fmt.str, std::forward<Args>(args)...);
|
log_(loc, lvl, fmt.get(), std::forward<Args>(args)...);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void log(level::level_enum lvl, format_string_t<Args...> fmt, Args &&...args) {
|
void log(level::level_enum lvl, format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(source_loc{}, lvl, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@@ -135,71 +131,47 @@ public:
|
|||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void trace(format_string_t<Args...> fmt, Args &&...args) {
|
void trace(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::trace, fmt, std::forward<Args>(args)...);
|
log(level::trace, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::trace, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void debug(format_string_t<Args...> fmt, Args &&...args) {
|
void debug(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::debug, fmt, std::forward<Args>(args)...);
|
log(level::debug, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::debug, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void info(format_string_t<Args...> fmt, Args &&...args) {
|
void info(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::info, fmt, std::forward<Args>(args)...);
|
log(level::info, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::info, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void warn(format_string_t<Args...> fmt, Args &&...args) {
|
void warn(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::warn, fmt, std::forward<Args>(args)...);
|
log(level::warn, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::warn, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void error(format_string_t<Args...> fmt, Args &&...args) {
|
void error(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::err, fmt, std::forward<Args>(args)...);
|
log(level::err, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::err, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void critical(format_string_t<Args...> fmt, Args &&...args) {
|
void critical(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::critical, fmt, std::forward<Args>(args)...);
|
log(level::critical, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::critical, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
|
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void log(source_loc loc, level::level_enum lvl, wformat_string_t<Args...> fmt, Args &&...args) {
|
void log(source_loc loc, level::level_enum lvl, wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
|
#if defined(SPDLOG_USE_STD_FORMAT) && __cpp_lib_format < 202207L
|
||||||
|
log_(loc, lvl, fmt, std::forward<Args>(args)...);
|
||||||
|
#else
|
||||||
log_(loc, lvl, fmt.get(), std::forward<Args>(args)...);
|
log_(loc, lvl, fmt.get(), std::forward<Args>(args)...);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void log(level::level_enum lvl, wformat_string_t<Args...> fmt, Args &&...args) {
|
void log(level::level_enum lvl, wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(source_loc{}, lvl, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void log(log_clock::time_point log_time,
|
void log(log_clock::time_point log_time,
|
||||||
@@ -235,56 +207,32 @@ public:
|
|||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void trace(wformat_string_t<Args...> fmt, Args &&...args) {
|
void trace(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::trace, fmt, std::forward<Args>(args)...);
|
log(level::trace, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::trace, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void debug(wformat_string_t<Args...> fmt, Args &&...args) {
|
void debug(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::debug, fmt, std::forward<Args>(args)...);
|
log(level::debug, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::debug, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void info(wformat_string_t<Args...> fmt, Args &&...args) {
|
void info(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::info, fmt, std::forward<Args>(args)...);
|
log(level::info, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::info, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void warn(wformat_string_t<Args...> fmt, Args &&...args) {
|
void warn(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::warn, fmt, std::forward<Args>(args)...);
|
log(level::warn, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::warn, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void error(wformat_string_t<Args...> fmt, Args &&...args) {
|
void error(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::err, fmt, std::forward<Args>(args)...);
|
log(level::err, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::err, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
void critical(wformat_string_t<Args...> fmt, Args &&...args) {
|
void critical(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
log(level::critical, fmt, std::forward<Args>(args)...);
|
log(level::critical, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
log(level::critical, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -150,74 +150,42 @@ inline void log(source_loc source,
|
|||||||
level::level_enum lvl,
|
level::level_enum lvl,
|
||||||
format_string_t<Args...> fmt,
|
format_string_t<Args...> fmt,
|
||||||
Args &&...args) {
|
Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->log(source, lvl, fmt, std::forward<Args>(args)...);
|
default_logger_raw()->log(source, lvl, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->log(source, lvl, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void log(level::level_enum lvl, format_string_t<Args...> fmt, Args &&...args) {
|
inline void log(level::level_enum lvl, format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
default_logger_raw()->log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->log(source_loc{}, lvl, fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void trace(format_string_t<Args...> fmt, Args &&...args) {
|
inline void trace(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->trace(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->trace(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->trace(fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void debug(format_string_t<Args...> fmt, Args &&...args) {
|
inline void debug(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->debug(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->debug(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->debug(fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void info(format_string_t<Args...> fmt, Args &&...args) {
|
inline void info(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->info(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->info(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->info(fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void warn(format_string_t<Args...> fmt, Args &&...args) {
|
inline void warn(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->warn(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->warn(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->warn(fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void error(format_string_t<Args...> fmt, Args &&...args) {
|
inline void error(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->error(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->error(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->error(fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void critical(format_string_t<Args...> fmt, Args &&...args) {
|
inline void critical(format_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->critical(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->critical(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->critical(fmt.str, std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
@@ -236,74 +204,42 @@ inline void log(source_loc source,
|
|||||||
level::level_enum lvl,
|
level::level_enum lvl,
|
||||||
wformat_string_t<Args...> fmt,
|
wformat_string_t<Args...> fmt,
|
||||||
Args &&...args) {
|
Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->log(source, lvl, fmt, std::forward<Args>(args)...);
|
default_logger_raw()->log(source, lvl, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->log(source, lvl, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void log(level::level_enum lvl, wformat_string_t<Args...> fmt, Args &&...args) {
|
inline void log(level::level_enum lvl, wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
default_logger_raw()->log(source_loc{}, lvl, fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->log(source_loc{}, lvl, fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void trace(wformat_string_t<Args...> fmt, Args &&...args) {
|
inline void trace(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->trace(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->trace(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->trace(fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void debug(wformat_string_t<Args...> fmt, Args &&...args) {
|
inline void debug(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->debug(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->debug(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->debug(fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void info(wformat_string_t<Args...> fmt, Args &&...args) {
|
inline void info(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->info(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->info(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->info(fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void warn(wformat_string_t<Args...> fmt, Args &&...args) {
|
inline void warn(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->warn(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->warn(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->warn(fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void error(wformat_string_t<Args...> fmt, Args &&...args) {
|
inline void error(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->error(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->error(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->error(fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename... Args>
|
template <typename... Args>
|
||||||
inline void critical(wformat_string_t<Args...> fmt, Args &&...args) {
|
inline void critical(wformat_string_t<Args...> fmt, Args &&...args) {
|
||||||
#ifdef SPDLOG_USE_STD_FORMAT
|
|
||||||
default_logger_raw()->critical(fmt, std::forward<Args>(args)...);
|
default_logger_raw()->critical(fmt, std::forward<Args>(args)...);
|
||||||
#else
|
|
||||||
default_logger_raw()->critical(fmt.get(), std::forward<Args>(args)...);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user