Skip to content

Commit c5c76dc

Browse files
committed
logging: refactor: pull prefix code out
1 parent 8f7b9eb commit c5c76dc

File tree

3 files changed

+21
-9
lines changed

3 files changed

+21
-9
lines changed

src/logging.cpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ bool GetLogCategory(BCLog::LogFlags& flag, const std::string& str)
202202
return false;
203203
}
204204

205-
std::string BCLog::Logger::LogLevelToStr(BCLog::Level level) const
205+
std::string BCLog::Logger::LogLevelToStr(BCLog::Level level)
206206
{
207207
switch (level) {
208208
case BCLog::Level::Trace:
@@ -341,7 +341,7 @@ static constexpr std::array<BCLog::Level, 3> LogLevelsList()
341341
std::string BCLog::Logger::LogLevelsString() const
342342
{
343343
const auto& levels = LogLevelsList();
344-
return Join(std::vector<BCLog::Level>{levels.begin(), levels.end()}, ", ", [this](BCLog::Level level) { return LogLevelToStr(level); });
344+
return Join(std::vector<BCLog::Level>{levels.begin(), levels.end()}, ", ", [](BCLog::Level level) { return LogLevelToStr(level); });
345345
}
346346

347347
std::string BCLog::Logger::LogTimestampStr(const std::string& str)
@@ -392,12 +392,9 @@ namespace BCLog {
392392
}
393393
} // namespace BCLog
394394

395-
void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, int source_line, BCLog::LogFlags category, BCLog::Level level)
395+
std::string BCLog::Logger::GetLogPrefix(BCLog::LogFlags category, BCLog::Level level) const
396396
{
397-
StdLockGuard scoped_lock(m_cs);
398-
std::string str_prefixed = LogEscapeMessage(str);
399-
400-
if ((category != LogFlags::NONE || level != Level::None) && m_started_new_line) {
397+
if (category != LogFlags::NONE || level != Level::None) {
401398
std::string s{"["};
402399

403400
if (category != LogFlags::NONE) {
@@ -414,7 +411,18 @@ void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& loggi
414411
}
415412

416413
s += "] ";
417-
str_prefixed.insert(0, s);
414+
return s;
415+
}
416+
return {};
417+
}
418+
419+
void BCLog::Logger::LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, int source_line, BCLog::LogFlags category, BCLog::Level level)
420+
{
421+
StdLockGuard scoped_lock(m_cs);
422+
std::string str_prefixed = LogEscapeMessage(str);
423+
424+
if (m_started_new_line) {
425+
str_prefixed.insert(0, GetLogPrefix(category, level));
418426
}
419427

420428
if (m_log_sourcelocations && m_started_new_line) {

src/logging.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ namespace BCLog {
124124
fs::path m_file_path;
125125
std::atomic<bool> m_reopen_file{false};
126126

127+
std::string GetLogPrefix(LogFlags category, Level level) const;
128+
127129
/** Send a string to the log output */
128130
void LogPrintStr(const std::string& str, const std::string& logging_function, const std::string& source_file, int source_line, BCLog::LogFlags category, BCLog::Level level);
129131

@@ -194,7 +196,7 @@ namespace BCLog {
194196
std::string LogLevelsString() const;
195197

196198
//! Returns the string representation of a log level.
197-
std::string LogLevelToStr(BCLog::Level level) const;
199+
static std::string LogLevelToStr(BCLog::Level level);
198200

199201
bool DefaultShrinkDebugFile() const;
200202
};

src/test/logging_tests.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ BOOST_FIXTURE_TEST_CASE(logging_LogPrintf_, LogSetup)
8787
LogPrintf_("fn2", "src2", 2, BCLog::LogFlags::NET, BCLog::Level::None, "foo2: %s\n", "bar2");
8888
LogPrintf_("fn3", "src3", 3, BCLog::LogFlags::NONE, BCLog::Level::Debug, "foo3: %s\n", "bar3");
8989
LogPrintf_("fn4", "src4", 4, BCLog::LogFlags::NONE, BCLog::Level::None, "foo4: %s\n", "bar4");
90+
LogPrintf_("fn5", "src5", 5, BCLog::LogFlags::NONE, BCLog::Level::Info, "foo5: %s\n", "bar5");
9091
std::ifstream file{tmp_log_path};
9192
std::vector<std::string> log_lines;
9293
for (std::string log; std::getline(file, log);) {
@@ -97,6 +98,7 @@ BOOST_FIXTURE_TEST_CASE(logging_LogPrintf_, LogSetup)
9798
"[src2:2] [fn2] [net] foo2: bar2",
9899
"[src3:3] [fn3] [debug] foo3: bar3",
99100
"[src4:4] [fn4] foo4: bar4",
101+
"[src5:5] [fn5] [info] foo5: bar5",
100102
};
101103
BOOST_CHECK_EQUAL_COLLECTIONS(log_lines.begin(), log_lines.end(), expected.begin(), expected.end());
102104
}

0 commit comments

Comments
 (0)