OpenCBDC Transaction Processor
Loading...
Searching...
No Matches
console_logger.cpp
Go to the documentation of this file.
1// Copyright (c) 2021 MIT Digital Currency Initiative,
2// Federal Reserve Bank of Boston
3// Distributed under the MIT software license, see the accompanying
4// file COPYING or http://www.opensource.org/licenses/mit-license.php.
5
6#include "console_logger.hpp"
7
8namespace cbdc::raft {
9 console_logger::console_logger(std::shared_ptr<cbdc::logging::log> log)
10 : m_log(std::move(log)) {}
11
13 const char* source_file,
14 const char* func_name,
15 size_t line_number,
16 const std::string& log_line) {
17 const auto enum_level = static_cast<log_level>(level);
18 switch(enum_level) {
20 m_log->trace(source_file,
21 ":",
22 line_number,
23 func_name,
24 log_line);
25 break;
27 m_log->debug(source_file,
28 ":",
29 line_number,
30 func_name,
31 log_line);
32 break;
33 case log_level::info:
34 m_log->info(source_file,
35 ":",
36 line_number,
37 func_name,
38 log_line);
39 break;
40 case log_level::warn:
41 m_log->warn(source_file,
42 ":",
43 line_number,
44 func_name,
45 log_line);
46 break;
49 // Fatal calls std::exit, so make fatal errors a lower level
50 // for nuraft.
51 m_log->error(source_file,
52 ":",
53 line_number,
54 func_name,
55 log_line);
56 break;
57 }
58 }
59
61 const auto ll = m_log->get_log_level();
62 log_level level{};
63 switch(ll) {
65 level = log_level::trace;
66 break;
68 level = log_level::debug;
69 break;
71 level = log_level::info;
72 break;
74 level = log_level::warn;
75 break;
76 // Demote fatal errors to avoid exiting.
79 level = log_level::error;
80 break;
81 }
82
83 return static_cast<int>(level);
84 }
85}
auto get_level() -> int override
Return the log level of the underlying logger.
console_logger(std::shared_ptr< logging::log > log)
Constructor.
void put_details(int level, const char *source_file, const char *func_name, size_t line_number, const std::string &log_line) override
Write a log message to the log.
@ trace
Fine-grained, fully verbose operating information.
@ warn
Potentially unintended, unexpected, or undesirable behavior.
@ debug
Diagnostic information.
@ info
General information about the state of the system.
@ error
Serious, critical errors.
@ fatal
Only fatal errors.
log_level
Map from NuRaft-internal log levels to names.