doc: Drop description of LogError messages as fatal

Remove documentation that says LogError should be used for "severe problems
that require the node (or a subsystem) to shut down entirely" because:

- This is not how `LogError` and `Level::Error` are used currently. Of 129
  current uses only 58 cases are fatal according to
  https://github.com/bitcoin/bitcoin/issues/30348

- "[T]here's not much benefit in a log that says "hey this error is about to
  cause the node to stop" -- you already get that information by seeing
  "Shutdown: in progress..." immediately following." according to
  https://github.com/bitcoin/bitcoin/pull/30347#discussion_r1659096893
This commit is contained in:
Ryan Ofsky 2024-06-28 18:02:46 -04:00
parent 2f6dca4d1c
commit b7aae361b2

View file

@ -26,6 +26,7 @@ Developer Notes
- [Ignoring IDE/editor files](#ignoring-ideeditor-files)
- [Development guidelines](#development-guidelines)
- [General Bitcoin Core](#general-bitcoin-core)
- [Logging](#logging)
- [Wallet](#wallet)
- [General C++](#general-c)
- [C++ data structures](#c-data-structures)
@ -742,14 +743,13 @@ logging messages. They should be used as follows:
attacker to fill up storage. Note that `LogPrintf(fmt, params...)` is
a deprecated alias for `LogInfo`.
- `LogError(fmt, params...)` should be used in place of `LogInfo` for
severe problems that require the node (or a subsystem) to shut down
entirely (e.g., insufficient storage space).
- `LogError(fmt, params...)` should be used in place of `LogInfo` for severe
errors the node admin will need to address (e.g., failure to write data).
- `LogWarning(fmt, params...)` should be used in place of `LogInfo` for
severe problems that the node admin should address, but are not
severe enough to warrant shutting down the node (e.g., system time
appears to be wrong, unknown soft fork appears to have activated).
unexpected conditions indicating potentially severe problems the node admin
should address (e.g. system time appears to be wrong, unknown soft fork
appears to have activated).
- `LogTrace(BCLog::CATEGORY, fmt, params...)` should be used in place of
`LogDebug` for log messages that would be unusable on a production