Bitcoin
|
Classes | |
struct | CLogCategoryDesc |
Functions | |
BCLog::Logger & | LogInstance () |
static int | FileWriteStr (const std::string &str, FILE *fp) |
bool | GetLogCategory (BCLog::LogFlags &flag, const std::string &str) |
std::string | ListLogCategories () |
std::vector< CLogCategoryActive > | ListActiveLogCategories () |
Variables | |
const char *const | DEFAULT_DEBUGLOGFILE = "debug.log" |
bool | fLogIPs = DEFAULT_LOGIPS |
const CLogCategoryDesc | LogCategories [] |
|
static |
bool GetLogCategory | ( | BCLog::LogFlags & | flag, |
const std::string & | str | ||
) |
Return true if str parses as a log category and set the flag
std::vector<CLogCategoryActive> ListActiveLogCategories | ( | ) |
Returns a vector of the active log categories.
std::string ListLogCategories | ( | ) |
Returns a string with the log categories.
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 LogPrintf, 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 destructor is never called, the logger and all its members must have a trivial destructor.
This method of initialization was originally introduced in ee3374234c60aba2cc4c5cd5cac1c0aefc2d817c.
const char* const DEFAULT_DEBUGLOGFILE = "debug.log" |
bool fLogIPs = DEFAULT_LOGIPS |
const CLogCategoryDesc LogCategories[] |