From f2731676619d14fa4527aa9086fb73078d20f26f Mon Sep 17 00:00:00 2001 From: stickies-v Date: Tue, 9 Dec 2025 11:44:40 +0000 Subject: [PATCH] ipc: separate log statements per level Avoids ratelimiting unconditional log statements when debug logging is enabled. Introduces slight behaviour change by removing the category from unconditional logs, making them more uniform with the other unconditional logs in the codebase. Also, in a slight behavior change, prefix the info-level (and higher) messages with "ipc:". --- src/ipc/capnp/protocol.cpp | 42 ++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/ipc/capnp/protocol.cpp b/src/ipc/capnp/protocol.cpp index 27ef73e84e5..ff93b0a7675 100644 --- a/src/ipc/capnp/protocol.cpp +++ b/src/ipc/capnp/protocol.cpp @@ -31,22 +31,6 @@ namespace ipc { namespace capnp { namespace { -BCLog::Level ConvertIPCLogLevel(mp::Log level) -{ - switch (level) { - case mp::Log::Trace: return BCLog::Level::Trace; - case mp::Log::Debug: return BCLog::Level::Debug; - case mp::Log::Info: return BCLog::Level::Info; - case mp::Log::Warning: return BCLog::Level::Warning; - case mp::Log::Error: return BCLog::Level::Error; - case mp::Log::Raise: return BCLog::Level::Error; - } // no default case, so the compiler can warn about missing cases - - // Be conservative and assume that if MP ever adds a new log level, it - // should only be shown at our most verbose level. - return BCLog::Level::Trace; -} - mp::Log GetRequestedIPCLogLevel() { if (LogAcceptCategory(BCLog::IPC, BCLog::Level::Trace)) return mp::Log::Trace; @@ -58,8 +42,30 @@ mp::Log GetRequestedIPCLogLevel() void IpcLogFn(mp::LogMessage message) { - LogPrintLevel(BCLog::IPC, ConvertIPCLogLevel(message.level), "%s\n", message.message); - if (message.level == mp::Log::Raise) throw Exception(message.message); + switch (message.level) { + case mp::Log::Trace: + LogTrace(BCLog::IPC, "%s", message.message); + return; + case mp::Log::Debug: + LogDebug(BCLog::IPC, "%s", message.message); + return; + case mp::Log::Info: + LogInfo("ipc: %s", message.message); + return; + case mp::Log::Warning: + LogWarning("ipc: %s", message.message); + return; + case mp::Log::Error: + LogError("ipc: %s", message.message); + return; + case mp::Log::Raise: + LogError("ipc: %s", message.message); + throw Exception(message.message); + } // no default case, so the compiler can warn about missing cases + + // Be conservative and assume that if MP ever adds a new log level, it + // should only be shown at our most verbose level. + LogTrace(BCLog::IPC, "%s", message.message); } class CapnpProtocol : public Protocol