argsman.AddArg("-debuglogfile=<file>",strprintf("Specify location of debug log file (default: %s). Relative paths will be prefixed by a net-specific datadir location. Pass -nodebuglogfile to disable writing the log to a file.",DEFAULT_DEBUGLOGFILE),ArgsManager::ALLOW_ANY,OptionsCategory::OPTIONS);
argsman.AddArg("-debug=<category>","Output debug and trace logging (default: -nodebug, supplying <category> is optional). "
"If <category> is not supplied or if <category> = 1, output all debug and trace logging. <category> can be: "+LogInstance().LogCategoriesString()+". This option can be specified multiple times to output multiple categories.",
argsman.AddArg("-debugexclude=<category>","Exclude debug and trace logging for a category. Can be used in conjunction with -debug=1 to output debug and trace logging 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("-loglevel=<level>|<category>:<level>",strprintf("Set the global or per-category severity level for logging categories enabled with the -debug configuration option or the logging RPC: %s (default=%s); warning and error levels are always logged. If <category>:<level> is supplied, the setting will override the global one and may be specified multiple times to set multiple category-specific levels. <category> can be: %s.",LogInstance().LogLevelsString(),LogInstance().LogLevelToStr(BCLog::DEFAULT_LOG_LEVEL),LogInstance().LogCategoriesString()),ArgsManager::DISALLOW_NEGATION|ArgsManager::DISALLOW_ELISION|ArgsManager::DEBUG_ONLY,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);