diff --git a/include/spdlog/details/fmt_helper.h b/include/spdlog/details/fmt_helper.h index 8632f01d..63c94c7b 100644 --- a/include/spdlog/details/fmt_helper.h +++ b/include/spdlog/details/fmt_helper.h @@ -43,20 +43,6 @@ inline void append_int(T n, fmt::basic_memory_buffer &dest) } - -template -inline void append_uint(T n, unsigned int width, fmt::basic_memory_buffer &dest) -{ - static_assert(std::is_unsigned::value, "append_uint must get unsigned T"); - auto digits = fmt::internal::count_digits(n); - if(width > digits) - { - const char* zeroes = "0000000000000000000"; - dest.append(zeroes, zeroes + width-digits); - } - append_int(n, dest); -} - template inline void pad2(int n, fmt::basic_memory_buffer &dest) { @@ -80,23 +66,38 @@ inline void pad2(int n, fmt::basic_memory_buffer &dest) } } + + +template +inline void pad_uint(T n, unsigned int width, fmt::basic_memory_buffer &dest) +{ + static_assert(std::is_unsigned::value, "append_uint must get unsigned T"); + auto digits = fmt::internal::count_digits(n); + if(width > digits) + { + const char* zeroes = "0000000000000000000"; + dest.append(zeroes, zeroes + width-digits); + } + append_int(n, dest); +} + template inline void pad3(T n, fmt::basic_memory_buffer &dest) { - append_uint(n, 3, dest); + pad_uint(n, 3, dest); } template inline void pad6(T n, fmt::basic_memory_buffer &dest) { - append_uint(n, 6, dest); + pad_uint(n, 6, dest); } template inline void pad9(T n, fmt::basic_memory_buffer &dest) { - append_uint(n, 9, dest); + pad_uint(n, 9, dest); } diff --git a/include/spdlog/details/pattern_formatter.h b/include/spdlog/details/pattern_formatter.h index ead3c4bf..925b23bc 100644 --- a/include/spdlog/details/pattern_formatter.h +++ b/include/spdlog/details/pattern_formatter.h @@ -653,9 +653,9 @@ public: void format(const details::log_msg &msg, const std::tm &, fmt::memory_buffer &dest) override { - const size_t field_size = 6; + const size_t field_size = fmt::internal::count_digits(msg.thread_id); scoped_pad p(field_size, padinfo_, dest); - fmt_helper::pad6(msg.thread_id, dest); + fmt_helper::append_int(msg.thread_id, dest); } }; @@ -668,9 +668,10 @@ public: void format(const details::log_msg &, const std::tm &, fmt::memory_buffer &dest) override { - const size_t field_size = 6; + const auto pid = static_cast(details::os::pid()); + const size_t field_size = fmt::internal::count_digits(pid); scoped_pad p(field_size, padinfo_, dest); - fmt_helper::pad6(static_cast(details::os::pid()), dest); + fmt_helper::append_int(pid, dest); } };