![]() |
Bitcoin Core 31.1.0
P2P Digital Currency
|
#include <logging.h>#include <memusage.h>#include <util/check.h>#include <util/fs.h>#include <util/string.h>#include <util/threadnames.h>#include <util/time.h>#include <array>#include <cstring>#include <map>#include <optional>#include <utility>Go to the source code of this file.
Namespaces | |
| namespace | BCLog |
Functions | |
| BCLog::Logger & | LogInstance () |
| static int | FileWriteStr (std::string_view str, FILE *fp) |
| bool | GetLogCategory (BCLog::LogFlags &flag, std::string_view str) |
| Return true if str parses as a log category and set the flag. | |
| static std::string | LogCategoryToStr (BCLog::LogFlags category) |
| static std::optional< BCLog::Level > | GetLogLevel (std::string_view level_str) |
| static constexpr std::array< BCLog::Level, 3 > | LogLevelsList () |
| Log severity levels that can be selected by the user. | |
| std::string | BCLog::LogEscapeMessage (std::string_view str) |
| Belts and suspenders: make sure outgoing log messages don't contain potentially suspicious characters, such as terminal control codes. | |
| static size_t | MemUsage (const BCLog::Logger::BufferedLog &buflog) |
| template<typename C, typename S, typename UnaryOp> | |
| auto | Join (const C &container, const S &separator, UnaryOp unary_op) |
| Join all container items. | |
| std::string_view | RemovePrefixView (std::string_view str, std::string_view prefix) |
Variables | |
| const char *const | DEFAULT_DEBUGLOGFILE = "debug.log" |
| constexpr auto | MAX_USER_SETABLE_SEVERITY_LEVEL {BCLog::Level::Info} |
| bool | fLogIPs = DEFAULT_LOGIPS |
| static const std::map< std::string, BCLog::LogFlags, std::less<> > | LOG_CATEGORIES_BY_STR |
| static const std::unordered_map< BCLog::LogFlags, std::string > | LOG_CATEGORIES_BY_FLAG |
|
static |
| bool GetLogCategory | ( | BCLog::LogFlags & | flag, |
| std::string_view | str ) |
Return true if str parses as a log category and set the flag.
Definition at line 220 of file logging.cpp.
|
static |
| auto util::Join | ( | const C & | container, |
| const S & | separator, | ||
| UnaryOp | unary_op ) |
|
static |
Definition at line 251 of file logging.cpp.
| BCLog::Logger & LogInstance | ( | ) |
NOTE: the logger instances is leaked on exit. This is ugly, but will be cleaned up by the OS/libc. Defining a logger as a global object doesn't work since the order of destruction of static/global objects is undefined. Consider if the logger gets destroyed, and then some later destructor calls LogInfo, maybe indirectly, and you get a core dump at shutdown trying to access the logger. When the shutdown sequence is fully audited and tested, explicit destruction of these objects can be implemented by changing this from a raw pointer to a std::unique_ptr. Since the ~Logger() destructor is never called, the Logger class and all its subclasses must have implicitly-defined destructors.
This method of initialization was originally introduced in ee3374234c60aba2cc4c5cd5cac1c0aefc2d817c.
Definition at line 26 of file logging.cpp.
|
staticconstexpr |
Log severity levels that can be selected by the user.
Definition at line 289 of file logging.cpp.
|
static |
Definition at line 369 of file logging.cpp.
|
inlinenodiscard |
| const char* const DEFAULT_DEBUGLOGFILE = "debug.log" |
Definition at line 23 of file logging.cpp.
| bool fLogIPs = DEFAULT_LOGIPS |
Definition at line 47 of file logging.cpp.
|
static |
Definition at line 208 of file logging.cpp.
|
static |
Definition at line 172 of file logging.cpp.
|
constexpr |
Definition at line 24 of file logging.cpp.