@@ -37,40 +37,41 @@ struct LogCategory {
37
37
};
38
38
39
39
namespace BCLog {
40
- enum LogFlags : uint32_t {
41
- NONE = 0 ,
42
- NET = (1 << 0 ),
43
- TOR = (1 << 1 ),
44
- MEMPOOL = (1 << 2 ),
45
- HTTP = (1 << 3 ),
46
- BENCH = (1 << 4 ),
47
- ZMQ = (1 << 5 ),
48
- WALLETDB = (1 << 6 ),
49
- RPC = (1 << 7 ),
50
- ESTIMATEFEE = (1 << 8 ),
51
- ADDRMAN = (1 << 9 ),
52
- SELECTCOINS = (1 << 10 ),
53
- REINDEX = (1 << 11 ),
54
- CMPCTBLOCK = (1 << 12 ),
55
- RAND = (1 << 13 ),
56
- PRUNE = (1 << 14 ),
57
- PROXY = (1 << 15 ),
58
- MEMPOOLREJ = (1 << 16 ),
59
- LIBEVENT = (1 << 17 ),
60
- COINDB = (1 << 18 ),
61
- QT = (1 << 19 ),
62
- LEVELDB = (1 << 20 ),
63
- VALIDATION = (1 << 21 ),
64
- I2P = (1 << 22 ),
65
- IPC = (1 << 23 ),
40
+ using CategoryMask = uint64_t ;
41
+ enum LogFlags : CategoryMask {
42
+ NONE = CategoryMask{0 },
43
+ NET = (CategoryMask{1 } << 0 ),
44
+ TOR = (CategoryMask{1 } << 1 ),
45
+ MEMPOOL = (CategoryMask{1 } << 2 ),
46
+ HTTP = (CategoryMask{1 } << 3 ),
47
+ BENCH = (CategoryMask{1 } << 4 ),
48
+ ZMQ = (CategoryMask{1 } << 5 ),
49
+ WALLETDB = (CategoryMask{1 } << 6 ),
50
+ RPC = (CategoryMask{1 } << 7 ),
51
+ ESTIMATEFEE = (CategoryMask{1 } << 8 ),
52
+ ADDRMAN = (CategoryMask{1 } << 9 ),
53
+ SELECTCOINS = (CategoryMask{1 } << 10 ),
54
+ REINDEX = (CategoryMask{1 } << 11 ),
55
+ CMPCTBLOCK = (CategoryMask{1 } << 12 ),
56
+ RAND = (CategoryMask{1 } << 13 ),
57
+ PRUNE = (CategoryMask{1 } << 14 ),
58
+ PROXY = (CategoryMask{1 } << 15 ),
59
+ MEMPOOLREJ = (CategoryMask{1 } << 16 ),
60
+ LIBEVENT = (CategoryMask{1 } << 17 ),
61
+ COINDB = (CategoryMask{1 } << 18 ),
62
+ QT = (CategoryMask{1 } << 19 ),
63
+ LEVELDB = (CategoryMask{1 } << 20 ),
64
+ VALIDATION = (CategoryMask{1 } << 21 ),
65
+ I2P = (CategoryMask{1 } << 22 ),
66
+ IPC = (CategoryMask{1 } << 23 ),
66
67
#ifdef DEBUG_LOCKCONTENTION
67
- LOCK = (1 << 24 ),
68
+ LOCK = (CategoryMask{ 1 } << 24 ),
68
69
#endif
69
- BLOCKSTORAGE = (1 << 25 ),
70
- TXRECONCILIATION = (1 << 26 ),
71
- SCAN = (1 << 27 ),
72
- TXPACKAGES = (1 << 28 ),
73
- ALL = ~( uint32_t ) 0 ,
70
+ BLOCKSTORAGE = (CategoryMask{ 1 } << 25 ),
71
+ TXRECONCILIATION = (CategoryMask{ 1 } << 26 ),
72
+ SCAN = (CategoryMask{ 1 } << 27 ),
73
+ TXPACKAGES = (CategoryMask{ 1 } << 28 ),
74
+ ALL = ~NONE ,
74
75
};
75
76
enum class Level {
76
77
Trace = 0 , // High-volume or detailed logging for development/debugging
@@ -119,7 +120,7 @@ namespace BCLog {
119
120
std::atomic<Level> m_log_level{DEFAULT_LOG_LEVEL};
120
121
121
122
/* * Log categories bitfield. */
122
- std::atomic<uint32_t > m_categories{BCLog::NONE};
123
+ std::atomic<CategoryMask > m_categories{BCLog::NONE};
123
124
124
125
void FormatLogStrInPlace (std::string& str, LogFlags category, Level level, std::string_view source_file, int source_line, std::string_view logging_function, std::string_view threadname, SystemClock::time_point now, std::chrono::seconds mocktime) const ;
125
126
@@ -204,7 +205,7 @@ namespace BCLog {
204
205
void SetLogLevel (Level level) { m_log_level = level; }
205
206
bool SetLogLevel (std::string_view level);
206
207
207
- uint32_t GetCategoryMask () const { return m_categories.load (); }
208
+ CategoryMask GetCategoryMask () const { return m_categories.load (); }
208
209
209
210
void EnableCategory (LogFlags flag);
210
211
bool EnableCategory (std::string_view str);
0 commit comments