Tracepoints are OS level hooks that are not part of the software by default. Logging is about keeping the history of events that occurred along the software lifetime. This does not only involve errors, it also involves information about the soft activity.
Unlike logging, which can be enabled on-the-fly by simply calling an RPC command, users cannot enable tracepoints on their node without recompiling the software with a specific flag. Which requires compiling knowledge, forces the user to shutdown the node, etc..
Usually, when users encounter an issue, we require further information to assess them properly. Thus we ask for the logs. This events record need to provide us sufficient information to understand the behavior of the system so we can provide better assessment to our users, and also to encounter issues remotely.
In the context of this PR, coin selection is not deterministic and its behavior is not recorded anywhere. Thus, we have no way of knowing how the process operated, making it more challenging to understand and find bugs than it should be.
By logging the coin selection algorithm name and the waste score (at least), we gain information that we currently don’t have. This information can be useful for identifying issues and explaining behaviors that may occur only once and be hard to replicate.
My concern is less with the specific wording and more that we are logging low-level algorithm internals that at best are not actionable for the node runner and at worst confusing.
Not all logs need to be actionable by the node runner. In fact, most of them are not. The messages that are meant to provide an actionable path for the user are logged by default, the rest are under specific logging domain. Existing to help us detect issues and describe behaviors remotely.
What I mean with this is that node runners need to explicitly enable the wallet logging to see the introduced log. Which, usually, they only do upon request when they are facing a problem.