Skip to content

Commit 3dbdd24

Browse files
committed
Factor common code out of template function
1 parent a7c1744 commit 3dbdd24

2 files changed

Lines changed: 27 additions & 17 deletions

File tree

src/logging.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,26 @@ logger the_logger{};
1717
/// Access the global logger singleton
1818
logger &get_logger() noexcept { return the_logger; }
1919

20+
std::string logger::generate_common_prefix(fmt::text_style const &ts,
21+
char const *prefix)
22+
{
23+
std::string str;
24+
25+
if (m_needs_leading_return) {
26+
m_needs_leading_return = false;
27+
str += '\n';
28+
}
29+
30+
str += fmt::format("{:%Y-%m-%d %H:%M:%S} ",
31+
fmt::localtime(std::time(nullptr)));
32+
33+
if (m_current_level == log_level::debug) {
34+
str += fmt::format(ts, "[{}] ", this_thread_num);
35+
}
36+
37+
if (prefix) {
38+
str += fmt::format(ts, "{}: ", prefix);
39+
}
40+
41+
return str;
42+
}

src/logging.hpp

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ enum class log_level
3636
*/
3737
class logger
3838
{
39+
std::string generate_common_prefix(fmt::text_style const &ts,
40+
char const *prefix);
41+
3942
public:
4043
template <typename S, typename... TArgs>
4144
void log(log_level with_level, char const *prefix,
@@ -47,23 +50,7 @@ class logger
4750

4851
auto const &ts = m_use_color ? style : fmt::text_style{};
4952

50-
std::string str;
51-
52-
if (m_needs_leading_return) {
53-
m_needs_leading_return = false;
54-
str += '\n';
55-
}
56-
57-
str += fmt::format("{:%Y-%m-%d %H:%M:%S} ",
58-
fmt::localtime(std::time(nullptr)));
59-
60-
if (m_current_level == log_level::debug) {
61-
str += fmt::format(ts, "[{}] ", this_thread_num);
62-
}
63-
64-
if (prefix) {
65-
str += fmt::format(ts, "{}: ", prefix);
66-
}
53+
auto str = generate_common_prefix(ts, prefix);
6754

6855
str += fmt::format(ts, format_str, std::forward<TArgs>(args)...);
6956
str += '\n';

0 commit comments

Comments
 (0)