#include <logging.h>
#include <util/fs.h>
#include <util/string.h>
#include <util/threadnames.h>
#include <util/time.h>
#include <algorithm>
#include <array>
Go to the source code of this file.
◆ FileWriteStr()
static int FileWriteStr |
( |
const std::string & |
str, |
|
|
FILE * |
fp |
|
) |
| |
|
static |
◆ GetLogCategory()
Return true if str parses as a log category and set the flag.
Definition at line 142 of file logging.cpp.
◆ LogInstance()
NOTE: the logger instance 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 ~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 20 of file logging.cpp.
◆ DEFAULT_DEBUGLOGFILE
const char* const DEFAULT_DEBUGLOGFILE = "debug.log" |
◆ fLogIPs
◆ LogCategories