5#if defined(HAVE_CONFIG_H)
6#include <config/bitcoin-config.h>
23 "-debuglogfile=<file>",
24 strprintf(
"Specify location of debug log file. Relative paths will be "
25 "prefixed by a net-specific datadir location. "
26 "(-nodebuglogfile to disable; default: %s)",
29 argsman.
AddArg(
"-debug=<category>",
30 "Output debugging information (default: -nodebug, supplying "
31 "<category> is optional). "
32 "If <category> is not supplied or if <category> = 1, output "
33 "all debugging information. <category> can be: " +
35 ". This option can be specified multiple times to "
36 "output multiple categories.",
39 "-debugexclude=<category>",
41 "Exclude debugging information for a category. Can be used in "
42 "conjunction with -debug=1 to output debug logs for all categories "
43 "except the specified category. This option can be specified "
44 "multiple times to exclude multiple categories."),
48 strprintf(
"Include IP addresses in debug output (default: %u)",
53 strprintf(
"Prepend debug output with timestamp (default: %u)",
56#ifdef HAVE_THREAD_LOCAL
60 "Prepend debug output with name of the originating thread (only "
61 "available on platforms supporting thread_local) (default: %u)",
68 "-logsourcelocations",
70 "Prepend debug output with name of the originating source location "
71 "(source file, line number and function name) (default: %u)",
76 strprintf(
"Add microsecond precision to debug timestamps (default: %u)",
80 argsman.
AddArg(
"-printtoconsole",
81 "Send trace/debug info to console (default: 1 when no "
82 "-daemon. To disable logging to file, set -nodebuglogfile)",
84 argsman.
AddArg(
"-printpriority",
85 strprintf(
"Log transaction priority and fee per kB when "
86 "mining blocks (default: %d)",
92 "Shrink debug.log file on client startup (default: 1 when no -debug)",
107#ifdef HAVE_THREAD_LOCAL
121 const std::vector<std::string> categories = args.
GetArgs(
"-debug");
124 categories.begin(), categories.end(),
125 [](std::string cat) { return cat ==
"0" || cat ==
"none"; })) {
126 for (
const auto &cat : categories) {
129 strprintf(
_(
"Unsupported logging category %s=%s."),
137 for (
const std::string &cat : args.
GetArgs(
"-debugexclude")) {
140 "-debugexclude", cat));
175 }
else if (args.
IsArgSet(
"-conf")) {
178 strprintf(
_(
"The specified config file %s does not exist\n"),
182 LogPrintf(
"Config file: %s (not found, skipping)\n",
195 version_string +=
" (debug build)";
197 version_string +=
" (release build)";
fs::path GetDefaultDataDir()
fs::path AbsPathForConfigVal(const ArgsManager &args, const fs::path &path, bool net_specific=true)
Most paths passed as configuration arguments are treated as relative to the datadir if they are not a...
bool IsArgNegated(const std::string &strArg) const
Return true if the argument was originally passed as a negated option, i.e.
std::vector< std::string > GetArgs(const std::string &strArg) const
Return a vector of strings of the given argument.
fs::path GetDataDirNet() const
Get data directory path with appended network identifier.
bool IsArgSet(const std::string &strArg) const
Return true if the given argument has been manually set.
fs::path GetConfigFilePath() const
Return config file path (read-only)
void LogArgs() const
Log the config file options and the command line arguments, useful for troubleshooting.
bool GetBoolArg(const std::string &strArg, bool fDefault) const
Return boolean argument or default value.
void AddHiddenArgs(const std::vector< std::string > &args)
Add many hidden arguments.
void AddArg(const std::string &name, const std::string &help, unsigned int flags, const OptionsCategory &cat)
Add argument.
fs::path GetPathArg(std::string arg, const fs::path &default_value={}) const
Return path argument or default value.
bool DefaultShrinkDebugFile() const
Default for whether ShrinkDebugFile should be run.
bool m_log_sourcelocations
bool StartLogging()
Start logging (and flush all buffered messages)
Path class wrapper to block calls to the fs::path(std::string) implicit constructor and the fs::path:...
std::string FormatFullVersion()
const std::string CLIENT_NAME
BCLog::Logger & LogInstance()
const char *const DEFAULT_DEBUGLOGFILE
static const bool DEFAULT_LOGTIMESTAMPS
static const bool DEFAULT_LOGIPS
static const bool DEFAULT_LOGTHREADNAMES
static const bool DEFAULT_LOGSOURCELOCATIONS
static const bool DEFAULT_LOGTIMEMICROS
static bool exists(const path &p)
static std::string PathToString(const path &path)
Convert path object to byte string.
void AddLoggingArgs(ArgsManager &argsman)
void SetLoggingCategories(const ArgsManager &args)
bool StartLogging(const ArgsManager &args)
void SetLoggingOptions(const ArgsManager &args)
static const bool DEFAULT_PRINTPRIORITY
int64_t GetTime()
DEPRECATED Use either ClockType::now() or Now<TimePointType>() if a cast is needed.
std::string FormatISO8601DateTime(int64_t nTime)
ISO 8601 formatting is preferred.
bilingual_str _(const char *psz)
Translation function.
bilingual_str Untranslated(std::string original)
Mark a bilingual_str as untranslated.
void InitWarning(const bilingual_str &str)
Show warning message.
bool InitError(const bilingual_str &str)
Show error message.