mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 06:52:36 +01:00
logging: Unconditionally log levels >= WARN
Messages with level `WARN` or higher should be logged even when the category is not provided with `-debug=`, to make sure important warnings are not lost.
This commit is contained in:
parent
90e49c1ece
commit
bd971bffb0
4 changed files with 13 additions and 8 deletions
|
@ -19,7 +19,7 @@ public:
|
||||||
// This code is adapted from posix_logger.h, which is why it is using vsprintf.
|
// This code is adapted from posix_logger.h, which is why it is using vsprintf.
|
||||||
// Please do not do this in normal code
|
// Please do not do this in normal code
|
||||||
void Logv(const char * format, va_list ap) override {
|
void Logv(const char * format, va_list ap) override {
|
||||||
if (!LogAcceptCategory(BCLog::LEVELDB)) {
|
if (!LogAcceptCategory(BCLog::LEVELDB, BCLog::Level::Debug)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
char buffer[500];
|
char buffer[500];
|
||||||
|
@ -186,7 +186,7 @@ CDBWrapper::~CDBWrapper()
|
||||||
|
|
||||||
bool CDBWrapper::WriteBatch(CDBBatch& batch, bool fSync)
|
bool CDBWrapper::WriteBatch(CDBBatch& batch, bool fSync)
|
||||||
{
|
{
|
||||||
const bool log_memory = LogAcceptCategory(BCLog::LEVELDB);
|
const bool log_memory = LogAcceptCategory(BCLog::LEVELDB, BCLog::Level::Debug);
|
||||||
double mem_before = 0;
|
double mem_before = 0;
|
||||||
if (log_memory) {
|
if (log_memory) {
|
||||||
mem_before = DynamicMemoryUsage() / 1024.0 / 1024;
|
mem_before = DynamicMemoryUsage() / 1024.0 / 1024;
|
||||||
|
|
|
@ -166,9 +166,14 @@ namespace BCLog {
|
||||||
|
|
||||||
BCLog::Logger& LogInstance();
|
BCLog::Logger& LogInstance();
|
||||||
|
|
||||||
/** Return true if log accepts specified category */
|
/** Return true if log accepts specified category, at the specified level. */
|
||||||
static inline bool LogAcceptCategory(BCLog::LogFlags category)
|
static inline bool LogAcceptCategory(BCLog::LogFlags category, BCLog::Level level)
|
||||||
{
|
{
|
||||||
|
// Log messages at Warning and Error level unconditionally, so that
|
||||||
|
// important troubleshooting information doesn't get lost.
|
||||||
|
if (level >= BCLog::Level::Warning) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
return LogInstance().WillLogCategory(category);
|
return LogInstance().WillLogCategory(category);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,14 +208,14 @@ static inline void LogPrintf_(const std::string& logging_function, const std::st
|
||||||
// evaluating arguments when logging for the category is not enabled.
|
// evaluating arguments when logging for the category is not enabled.
|
||||||
#define LogPrint(category, ...) \
|
#define LogPrint(category, ...) \
|
||||||
do { \
|
do { \
|
||||||
if (LogAcceptCategory((category))) { \
|
if (LogAcceptCategory((category), BCLog::Level::Debug)) { \
|
||||||
LogPrintLevel_(category, BCLog::Level::None, __VA_ARGS__); \
|
LogPrintLevel_(category, BCLog::Level::None, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define LogPrintLevel(level, category, ...) \
|
#define LogPrintLevel(level, category, ...) \
|
||||||
do { \
|
do { \
|
||||||
if (LogAcceptCategory((category))) { \
|
if (LogAcceptCategory((category), (level))) { \
|
||||||
LogPrintLevel_(category, level, __VA_ARGS__); \
|
LogPrintLevel_(category, level, __VA_ARGS__); \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
|
@ -99,7 +99,7 @@ void AddTimeData(const CNetAddr& ip, int64_t nOffsetSample)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LogAcceptCategory(BCLog::NET)) {
|
if (LogAcceptCategory(BCLog::NET, BCLog::Level::Debug)) {
|
||||||
std::string log_message{"time data samples: "};
|
std::string log_message{"time data samples: "};
|
||||||
for (const int64_t n : vSorted) {
|
for (const int64_t n : vSorted) {
|
||||||
log_message += strprintf("%+d ", n);
|
log_message += strprintf("%+d ", n);
|
||||||
|
|
|
@ -307,7 +307,7 @@ std::optional<SelectionResult> KnapsackSolver(std::vector<OutputGroup>& groups,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LogAcceptCategory(BCLog::SELECTCOINS)) {
|
if (LogAcceptCategory(BCLog::SELECTCOINS, BCLog::Level::Debug)) {
|
||||||
std::string log_message{"Coin selection best subset: "};
|
std::string log_message{"Coin selection best subset: "};
|
||||||
for (unsigned int i = 0; i < applicable_groups.size(); i++) {
|
for (unsigned int i = 0; i < applicable_groups.size(); i++) {
|
||||||
if (vfBest[i]) {
|
if (vfBest[i]) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue