mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
threads: prefix log messages with thread names
Introduce a new flag (`-logthreadnames`) which allows toggling of this behavior.
This commit is contained in:
committed by
James O'Beirne
parent
ddd95ccb80
commit
383b186c28
@@ -4,8 +4,11 @@
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
|
||||
#include <logging.h>
|
||||
#include <util/threadnames.h>
|
||||
#include <util/time.h>
|
||||
|
||||
#include <mutex>
|
||||
|
||||
const char * const DEFAULT_DEBUGLOGFILE = "debug.log";
|
||||
|
||||
BCLog::Logger& LogInstance()
|
||||
@@ -174,7 +177,7 @@ std::vector<CLogCategoryActive> ListActiveLogCategories()
|
||||
return ret;
|
||||
}
|
||||
|
||||
std::string BCLog::Logger::LogTimestampStr(const std::string &str)
|
||||
std::string BCLog::Logger::LogTimestampStr(const std::string& str)
|
||||
{
|
||||
std::string strStamped;
|
||||
|
||||
@@ -196,21 +199,24 @@ std::string BCLog::Logger::LogTimestampStr(const std::string &str)
|
||||
} else
|
||||
strStamped = str;
|
||||
|
||||
if (!str.empty() && str[str.size()-1] == '\n')
|
||||
m_started_new_line = true;
|
||||
else
|
||||
m_started_new_line = false;
|
||||
|
||||
return strStamped;
|
||||
}
|
||||
|
||||
void BCLog::Logger::LogPrintStr(const std::string &str)
|
||||
{
|
||||
std::string strTimestamped = LogTimestampStr(str);
|
||||
std::string str_prefixed = str;
|
||||
|
||||
if (m_log_threadnames && m_started_new_line) {
|
||||
str_prefixed.insert(0, "[" + util::ThreadGetInternalName() + "] ");
|
||||
}
|
||||
|
||||
str_prefixed = LogTimestampStr(str_prefixed);
|
||||
|
||||
m_started_new_line = !str.empty() && str[str.size()-1] == '\n';
|
||||
|
||||
if (m_print_to_console) {
|
||||
// print to console
|
||||
fwrite(strTimestamped.data(), 1, strTimestamped.size(), stdout);
|
||||
fwrite(str_prefixed.data(), 1, str_prefixed.size(), stdout);
|
||||
fflush(stdout);
|
||||
}
|
||||
if (m_print_to_file) {
|
||||
@@ -218,7 +224,7 @@ void BCLog::Logger::LogPrintStr(const std::string &str)
|
||||
|
||||
// buffer if we haven't opened the log yet
|
||||
if (m_fileout == nullptr) {
|
||||
m_msgs_before_open.push_back(strTimestamped);
|
||||
m_msgs_before_open.push_back(str_prefixed);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -232,7 +238,7 @@ void BCLog::Logger::LogPrintStr(const std::string &str)
|
||||
m_fileout = new_fileout;
|
||||
}
|
||||
}
|
||||
FileWriteStr(strTimestamped, m_fileout);
|
||||
FileWriteStr(str_prefixed, m_fileout);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user