Skip to content

Commit 787586e

Browse files
committed
kernel: add missing log levels and categories
Ensure all levels and categories that may be logged by kernel code are well defined. Necessary preparation for future work to move from string-based to struct-based logging.
1 parent b5cd31c commit 787586e

File tree

4 files changed

+28
-13
lines changed

4 files changed

+28
-13
lines changed

src/kernel/bitcoinkernel.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -149,18 +149,19 @@ struct btck_BlockValidationState : Handle<btck_BlockValidationState, BlockValida
149149

150150
namespace {
151151

152-
153152
struct LogLevelMapping {
154153
util::log::Level bclog;
155154
std::string_view name;
156155
};
157156

158157
// Single source of truth for log level mappings (indexed by btck_LogLevel)
159158
constexpr auto LOG_LEVELS = [] {
160-
std::array<LogLevelMapping, 3> a{};
159+
std::array<LogLevelMapping, 5> a{};
161160
a[btck_LogLevel_TRACE] = {util::log::Level::Trace, "trace"};
162161
a[btck_LogLevel_DEBUG] = {util::log::Level::Debug, "debug"};
163162
a[btck_LogLevel_INFO] = {util::log::Level::Info, "info"};
163+
a[btck_LogLevel_WARNING] = {util::log::Level::Warning, "warning"};
164+
a[btck_LogLevel_ERROR] = {util::log::Level::Error, "error"};
164165
return a;
165166
}();
166167

@@ -177,18 +178,20 @@ struct LogCategoryMapping {
177178

178179
// Single source of truth for log category mappings (indexed by btck_LogCategory)
179180
constexpr auto LOG_CATEGORIES = [] {
180-
std::array<LogCategoryMapping, 11> a{};
181+
std::array<LogCategoryMapping, 13> a{};
181182
a[btck_LogCategory_ALL] = {BCLog::LogFlags::ALL, "all"};
182183
a[btck_LogCategory_BENCH] = {BCLog::LogFlags::BENCH, "bench"};
183184
a[btck_LogCategory_BLOCKSTORAGE] = {BCLog::LogFlags::BLOCKSTORAGE, "blockstorage"};
184185
a[btck_LogCategory_COINDB] = {BCLog::LogFlags::COINDB, "coindb"};
186+
a[btck_LogCategory_ESTIMATEFEE] = {BCLog::LogFlags::ESTIMATEFEE, "estimatefee"};
187+
a[btck_LogCategory_KERNEL] = {BCLog::LogFlags::KERNEL, "kernel"};
185188
a[btck_LogCategory_LEVELDB] = {BCLog::LogFlags::LEVELDB, "leveldb"};
186189
a[btck_LogCategory_MEMPOOL] = {BCLog::LogFlags::MEMPOOL, "mempool"};
187190
a[btck_LogCategory_PRUNE] = {BCLog::LogFlags::PRUNE, "prune"};
188191
a[btck_LogCategory_RAND] = {BCLog::LogFlags::RAND, "rand"};
189192
a[btck_LogCategory_REINDEX] = {BCLog::LogFlags::REINDEX, "reindex"};
193+
a[btck_LogCategory_TXPACKAGES] = {BCLog::LogFlags::TXPACKAGES, "txpackages"};
190194
a[btck_LogCategory_VALIDATION] = {BCLog::LogFlags::VALIDATION, "validation"};
191-
a[btck_LogCategory_KERNEL] = {BCLog::LogFlags::KERNEL, "kernel"};
192195
return a;
193196
}();
194197

src/kernel/bitcoinkernel.h

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -436,13 +436,15 @@ typedef uint8_t btck_LogCategory;
436436
#define btck_LogCategory_BENCH ((btck_LogCategory)(1))
437437
#define btck_LogCategory_BLOCKSTORAGE ((btck_LogCategory)(2))
438438
#define btck_LogCategory_COINDB ((btck_LogCategory)(3))
439-
#define btck_LogCategory_LEVELDB ((btck_LogCategory)(4))
440-
#define btck_LogCategory_MEMPOOL ((btck_LogCategory)(5))
441-
#define btck_LogCategory_PRUNE ((btck_LogCategory)(6))
442-
#define btck_LogCategory_RAND ((btck_LogCategory)(7))
443-
#define btck_LogCategory_REINDEX ((btck_LogCategory)(8))
444-
#define btck_LogCategory_VALIDATION ((btck_LogCategory)(9))
445-
#define btck_LogCategory_KERNEL ((btck_LogCategory)(10))
439+
#define btck_LogCategory_ESTIMATEFEE ((btck_LogCategory)(4))
440+
#define btck_LogCategory_KERNEL ((btck_LogCategory)(5))
441+
#define btck_LogCategory_LEVELDB ((btck_LogCategory)(6))
442+
#define btck_LogCategory_MEMPOOL ((btck_LogCategory)(7))
443+
#define btck_LogCategory_PRUNE ((btck_LogCategory)(8))
444+
#define btck_LogCategory_RAND ((btck_LogCategory)(9))
445+
#define btck_LogCategory_REINDEX ((btck_LogCategory)(10))
446+
#define btck_LogCategory_TXPACKAGES ((btck_LogCategory)(11))
447+
#define btck_LogCategory_VALIDATION ((btck_LogCategory)(12))
446448

447449
/**
448450
* The level at which logs should be produced.
@@ -451,6 +453,8 @@ typedef uint8_t btck_LogLevel;
451453
#define btck_LogLevel_TRACE ((btck_LogLevel)(0))
452454
#define btck_LogLevel_DEBUG ((btck_LogLevel)(1))
453455
#define btck_LogLevel_INFO ((btck_LogLevel)(2))
456+
#define btck_LogLevel_WARNING ((btck_LogLevel)(3))
457+
#define btck_LogLevel_ERROR ((btck_LogLevel)(4))
454458

455459
/**
456460
* Options controlling the format of log messages.

src/kernel/bitcoinkernel_wrapper.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,23 @@ enum class LogCategory : btck_LogCategory {
2727
BENCH = btck_LogCategory_BENCH,
2828
BLOCKSTORAGE = btck_LogCategory_BLOCKSTORAGE,
2929
COINDB = btck_LogCategory_COINDB,
30+
ESTIMATEFEE = btck_LogCategory_ESTIMATEFEE,
31+
KERNEL = btck_LogCategory_KERNEL,
3032
LEVELDB = btck_LogCategory_LEVELDB,
3133
MEMPOOL = btck_LogCategory_MEMPOOL,
3234
PRUNE = btck_LogCategory_PRUNE,
3335
RAND = btck_LogCategory_RAND,
3436
REINDEX = btck_LogCategory_REINDEX,
37+
TXPACKAGES = btck_LogCategory_TXPACKAGES,
3538
VALIDATION = btck_LogCategory_VALIDATION,
36-
KERNEL = btck_LogCategory_KERNEL
3739
};
3840

3941
enum class LogLevel : btck_LogLevel {
4042
TRACE_LEVEL = btck_LogLevel_TRACE,
4143
DEBUG_LEVEL = btck_LogLevel_DEBUG,
42-
INFO_LEVEL = btck_LogLevel_INFO
44+
INFO_LEVEL = btck_LogLevel_INFO,
45+
WARNING_LEVEL = btck_LogLevel_WARNING,
46+
ERROR_LEVEL = btck_LogLevel_ERROR,
4347
};
4448

4549
enum class ChainType : btck_ChainType {

src/test/kernel/test_kernel.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,8 @@ BOOST_AUTO_TEST_CASE(log_level_name_tests)
640640
BOOST_CHECK_EQUAL(log_level_get_name(LogLevel::TRACE_LEVEL), "trace");
641641
BOOST_CHECK_EQUAL(log_level_get_name(LogLevel::DEBUG_LEVEL), "debug");
642642
BOOST_CHECK_EQUAL(log_level_get_name(LogLevel::INFO_LEVEL), "info");
643+
BOOST_CHECK_EQUAL(log_level_get_name(LogLevel::WARNING_LEVEL), "warning");
644+
BOOST_CHECK_EQUAL(log_level_get_name(LogLevel::ERROR_LEVEL), "error");
643645
}
644646

645647
BOOST_AUTO_TEST_CASE(log_category_name_tests)
@@ -648,12 +650,14 @@ BOOST_AUTO_TEST_CASE(log_category_name_tests)
648650
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::BENCH), "bench");
649651
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::BLOCKSTORAGE), "blockstorage");
650652
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::COINDB), "coindb");
653+
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::ESTIMATEFEE), "estimatefee");
651654
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::KERNEL), "kernel");
652655
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::LEVELDB), "leveldb");
653656
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::MEMPOOL), "mempool");
654657
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::PRUNE), "prune");
655658
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::RAND), "rand");
656659
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::REINDEX), "reindex");
660+
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::TXPACKAGES), "txpackages");
657661
BOOST_CHECK_EQUAL(log_category_get_name(LogCategory::VALIDATION), "validation");
658662
}
659663

0 commit comments

Comments
 (0)