diff options
author | MarcoFalke <falke.marco@gmail.com> | 2020-01-31 11:10:50 +1300 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2020-01-31 11:10:56 +1300 |
commit | 1d1f8bbf57118e01904448108a104e20f50d2544 (patch) | |
tree | 5d08094ad92d581eba31f7702500b8ca936fe97b /src/util/system.h | |
parent | 3b69310beb172b2b56fbfc38c45898a1b627ac54 (diff) | |
parent | b951b0973cfd4e0db4607a00d434a04afb0d6199 (diff) | |
download | bitcoin-1d1f8bbf57118e01904448108a104e20f50d2544.tar.xz |
Merge #16115: On bitcoind startup, write config args to debug.log
b951b0973cfd4e0db4607a00d434a04afb0d6199 on startup, write config options to debug.log (Larry Ruane)
Pull request description:
When a developer is examining `debug.log` after something goes wrong, it's often useful to know the exact options the failing instance of `bitcoind` was started with. Sometimes the `debug.log` file is all that's available for the analysis. This PR logs the `bitcoin.conf` entries and command-line arguments to `debug.log` on startup.
ACKs for top commit:
MarcoFalke:
ACK b951b0973cfd4e0db4607a00d434a04afb0d6199 🐪
jonatack:
ACK b951b0973c reviewed diff, re-code review, built, ran tests, launched bitcoind and reviewed debug log output, verified value of `str` debug log in the added unit test.
Tree-SHA512: bbca4fb3d49f99261758302bde0b8b67300ccc72e7380b01f1f66a146ae8a008a045df0ca5ca9664caff034d0ee38ea7ef38a50f38374525608c07ba52790358
Diffstat (limited to 'src/util/system.h')
-rw-r--r-- | src/util/system.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/util/system.h b/src/util/system.h index 473019bbed..bb69181de9 100644 --- a/src/util/system.h +++ b/src/util/system.h @@ -145,6 +145,8 @@ public: * between mainnet and regtest/testnet won't cause problems due to these * parameters by accident. */ NETWORK_ONLY = 0x200, + // This argument's value is sensitive (such as a password). + SENSITIVE = 0x400, }; protected: @@ -318,6 +320,19 @@ public: * Return nullopt for unknown arg. */ Optional<unsigned int> GetArgFlags(const std::string& name) const; + + /** + * Log the config file options and the command line arguments, + * useful for troubleshooting. + */ + void LogArgs() const; + +private: + // Helper function for LogArgs(). + void logArgsPrefix( + const std::string& prefix, + const std::string& section, + const std::map<std::string, std::vector<util::SettingsValue>>& args) const; }; extern ArgsManager gArgs; |