argsman.AddArg("-help-debug","Print help message with debugging options and exit",ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);// server-only for now
argsman.AddArg("-datadir=<dir>","Specify data directory",ArgsManager::ALLOW_ANY,OptionsCategory::OPTIONS);
argsman.AddArg("-dbbatchsize",strprintf("Maximum database write batch size in bytes (default: %u)",nDefaultDbBatchSize),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::OPTIONS);
argsman.AddArg("-dbcache=<n>",strprintf("Maximum database cache size <n> MiB (%d to %d, default: %d). In addition, unused mempool memory is shared for this cache (see -maxmempool).",nMinDbCache,nMaxDbCache,nDefaultDbCache),ArgsManager::ALLOW_ANY,OptionsCategory::OPTIONS);
argsman.AddArg("-debuglogfile=<file>",strprintf("Specify location of debug log file. Relative paths will be prefixed by a net-specific datadir location. (-nodebuglogfile to disable; default: %s)",DEFAULT_DEBUGLOGFILE),ArgsManager::ALLOW_ANY,OptionsCategory::OPTIONS);
argsman.AddArg("-feefilter",strprintf("Tell other nodes to filter invs to us by our mempool min fee (default: %u)",DEFAULT_FEEFILTER),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::OPTIONS);
argsman.AddArg("-includeconf=<file>","Specify additional configuration file, relative to the -datadir path (only useable from configuration file, not command line)",ArgsManager::ALLOW_ANY,OptionsCategory::OPTIONS);
argsman.AddArg("-loadblock=<file>","Imports blocks from external file on startup",ArgsManager::ALLOW_ANY,OptionsCategory::OPTIONS);
argsman.AddArg("-limitdescendantsize=<n>",strprintf("Do not accept transactions if any ancestor would have more than <n> kilobytes of in-mempool descendants (default: %u).",DEFAULT_DESCENDANT_SIZE_LIMIT),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-addrmantest","Allows to test address relay on localhost",ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-capturemessages","Capture all P2P messages to disk",ArgsManager::ALLOW_BOOL|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-debug=<category>","Output debugging information (default: -nodebug, supplying <category> is optional). "
"If <category> is not supplied or if <category> = 1, output all debugging information. <category> can be: "+LogInstance().LogCategoriesString()+". This option can be specified multiple times to output multiple categories.",
argsman.AddArg("-debugexclude=<category>",strprintf("Exclude debugging information for a category. Can be used in conjunction with -debug=1 to output debug logs for all categories except the specified category. This option can be specified multiple times to exclude multiple categories."),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-logips",strprintf("Include IP addresses in debug output (default: %u)",DEFAULT_LOGIPS),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-logtimestamps",strprintf("Prepend debug output with timestamp (default: %u)",DEFAULT_LOGTIMESTAMPS),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
#ifdef HAVE_THREAD_LOCAL
argsman.AddArg("-logthreadnames",strprintf("Prepend debug output with name of the originating thread (only available on platforms supporting thread_local) (default: %u)",DEFAULT_LOGTHREADNAMES),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
#else
hidden_args.emplace_back("-logthreadnames");
#endif
argsman.AddArg("-logsourcelocations",strprintf("Prepend debug output with name of the originating source location (source file, line number and function name) (default: %u)",DEFAULT_LOGSOURCELOCATIONS),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-logtimemicros",strprintf("Add microsecond precision to debug timestamps (default: %u)",DEFAULT_LOGTIMEMICROS),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-mocktime=<n>","Replace actual time with "+UNIX_EPOCH_TIME+" (default: 0)",ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-maxsigcachesize=<n>",strprintf("Limit sum of signature cache and script execution cache sizes to <n> MiB (default: %u)",DEFAULT_MAX_SIG_CACHE_SIZE),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-maxtipage=<n>",strprintf("Maximum tip age in seconds to consider node in initial block download (default: %u)",DEFAULT_MAX_TIP_AGE),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-printpriority",strprintf("Log transaction fee per kB when mining blocks (default: %u)",DEFAULT_PRINTPRIORITY),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-printtoconsole","Send trace/debug info to console (default: 1 when no -daemon. To disable logging to file, set -nodebuglogfile)",ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-shrinkdebugfile","Shrink debug.log file on client startup (default: 1 when no -debug)",ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-uacomment=<cmt>","Append comment to the user agent string",ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#if defined(HAVE_CONFIG_H)
#include<config/bitcoin-config.h>
#endif
#include<compat/sanity.h>
#include<crypto/sha256.h>
#include<key.h>
@ -9,6 +13,7 @@
#include<node/ui_interface.h>
#include<pubkey.h>
#include<random.h>
#include<util/system.h>
#include<util/time.h>
#include<util/translation.h>
@ -51,4 +56,24 @@ bool SanityChecks()
returntrue;
}
voidAddLoggingArgs(ArgsManager&argsman)
{
argsman.AddArg("-debuglogfile=<file>",strprintf("Specify location of debug log file. Relative paths will be prefixed by a net-specific datadir location. (-nodebuglogfile to disable; default: %s)",DEFAULT_DEBUGLOGFILE),ArgsManager::ALLOW_ANY,OptionsCategory::OPTIONS);
argsman.AddArg("-debug=<category>","Output debugging information (default: -nodebug, supplying <category> is optional). "
"If <category> is not supplied or if <category> = 1, output all debugging information. <category> can be: "+LogInstance().LogCategoriesString()+". This option can be specified multiple times to output multiple categories.",
argsman.AddArg("-debugexclude=<category>",strprintf("Exclude debugging information for a category. Can be used in conjunction with -debug=1 to output debug logs for all categories except the specified category. This option can be specified multiple times to exclude multiple categories."),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-logips",strprintf("Include IP addresses in debug output (default: %u)",DEFAULT_LOGIPS),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-logtimestamps",strprintf("Prepend debug output with timestamp (default: %u)",DEFAULT_LOGTIMESTAMPS),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
#ifdef HAVE_THREAD_LOCAL
argsman.AddArg("-logthreadnames",strprintf("Prepend debug output with name of the originating thread (only available on platforms supporting thread_local) (default: %u)",DEFAULT_LOGTHREADNAMES),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
#else
argsman.AddHiddenArgs({"-logthreadnames"});
#endif
argsman.AddArg("-logsourcelocations",strprintf("Prepend debug output with name of the originating source location (source file, line number and function name) (default: %u)",DEFAULT_LOGSOURCELOCATIONS),ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-logtimemicros",strprintf("Add microsecond precision to debug timestamps (default: %u)",DEFAULT_LOGTIMEMICROS),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-printtoconsole","Send trace/debug info to console (default: 1 when no -daemon. To disable logging to file, set -nodebuglogfile)",ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);
argsman.AddArg("-shrinkdebugfile","Shrink debug.log file on client startup (default: 1 when no -debug)",ArgsManager::ALLOW_ANY,OptionsCategory::DEBUG_TEST);