diff --git a/include/spdlog/sinks/daily_file_sink.h b/include/spdlog/sinks/daily_file_sink.h index f6f1bb1d..31516ee2 100644 --- a/include/spdlog/sinks/daily_file_sink.h +++ b/include/spdlog/sinks/daily_file_sink.h @@ -18,6 +18,7 @@ #include #include #include +#include namespace spdlog { namespace sinks { @@ -48,7 +49,6 @@ struct daily_filename_format_calculator { static filename_t calc_filename(const filename_t &filename, const tm &now_tm) { -#ifdef SPDLOG_USE_STD_FORMAT // adapted from fmtlib: https://github.com/fmtlib/fmt/blob/8.0.1/include/fmt/chrono.h#L522-L546 filename_t tm_format; @@ -59,7 +59,7 @@ struct daily_filename_format_calculator tm_format.push_back(' '); const size_t MIN_SIZE = 10; - filename_t buf; + std::vector buf; buf.resize(MIN_SIZE); for (;;) { @@ -73,19 +73,7 @@ struct daily_filename_format_calculator buf.resize(buf.size() * 2); } - return buf; -#else - // generate fmt datetime format string, e.g. {:%Y-%m-%d}. - filename_t fmt_filename = fmt::format(SPDLOG_FMT_STRING(SPDLOG_FILENAME_T("{{:{}}}")), filename); - - // MSVC doesn't allow fmt::runtime(..) with wchar, with fmtlib versions < 9.1.x -# if defined(_MSC_VER) && defined(SPDLOG_WCHAR_FILENAMES) && FMT_VERSION < 90101 - return fmt::format(fmt_filename, now_tm); -# else - return fmt::format(SPDLOG_FMT_RUNTIME(fmt_filename), now_tm); -# endif - -#endif + return std::string(buf.cbegin(), buf.cend()); } private: