File tree Expand file tree Collapse file tree 2 files changed +17
-18
lines changed
Expand file tree Collapse file tree 2 files changed +17
-18
lines changed Original file line number Diff line number Diff line change @@ -19,28 +19,19 @@ logger the_logger{};
1919// / Access the global logger singleton
2020logger &get_logger () noexcept { return the_logger; }
2121
22- std::string logger::generate_common_prefix (fmt::text_style const &ts,
23- char const *prefix)
22+ void logger::generate_common_prefix (std::string *str, fmt::text_style const &ts,
23+ char const *prefix) const
2424{
25- std::string str;
26-
27- if (m_needs_leading_return) {
28- m_needs_leading_return = false ;
29- str += ' \n ' ;
30- }
31-
32- str += fmt::format (" {:%Y-%m-%d %H:%M:%S} " ,
25+ *str += fmt::format (" {:%Y-%m-%d %H:%M:%S} " ,
3326 fmt::localtime (std::time (nullptr )));
3427
3528 if (m_current_level == log_level::debug) {
36- str += fmt::format (ts, " [{:02d}] " , this_thread_num);
29+ * str += fmt::format (ts, " [{:02d}] " , this_thread_num);
3730 }
3831
3932 if (prefix) {
40- str += fmt::format (ts, " {}: " , prefix);
33+ * str += fmt::format (ts, " {}: " , prefix);
4134 }
42-
43- return str;
4435}
4536
4637void logger::init_thread (unsigned int num)
Original file line number Diff line number Diff line change 1717#include < fmt/chrono.h>
1818#include < fmt/color.h>
1919
20+ #include < atomic>
2021#include < cstdio>
2122#include < utility>
2223
@@ -45,7 +46,14 @@ class logger
4546
4647 auto const &ts = m_use_color ? style : fmt::text_style{};
4748
48- auto str = generate_common_prefix (ts, prefix);
49+ std::string str;
50+
51+ if (m_needs_leading_return) {
52+ m_needs_leading_return = false ;
53+ str += ' \n ' ;
54+ }
55+
56+ generate_common_prefix (&str, ts, prefix);
4957
5058 str += fmt::format (ts, format_str, std::forward<TArgs>(args)...);
5159 str += ' \n ' ;
@@ -82,14 +90,14 @@ class logger
8290 static void init_thread (unsigned int num);
8391
8492private:
85- std::string generate_common_prefix ( fmt::text_style const &ts,
86- char const *prefix);
93+ void generate_common_prefix ( std::string *str, fmt::text_style const &ts,
94+ char const *prefix) const ;
8795
8896 log_level m_current_level = log_level::info;
8997 bool m_log_sql = false ;
9098 bool m_log_sql_data = false ;
9199 bool m_show_progress = true ;
92- bool m_needs_leading_return = false ;
100+ std::atomic< bool > m_needs_leading_return = false ;
93101
94102#ifdef _WIN32
95103 bool m_use_color = false ;
You can’t perform that action at this time.
0 commit comments