(edit) - As I thought this through a little further.
While I would love to have access to a runtime debugger for business rules, a runtime debugger does not replace the sort of degugging info I need to write to a log. A runtime code debugger and a logger serve two different needs.
For logging, I personally think a far simpler and better solution would be to provide a pair of new api/BRApi.UserLog() functions The idea of a user log would be to provide us a place to write whatever debugging type info we need without any redacting. The user log would only be viewable by the user who invoked the logic, and auto-delete when the user logs out the last session they may have open. As such, the user log might persist for a day at most. If you need to be debugging logic that someone else needs to run, then use the existing ErrorLog that can have some reasonable redacting (by "reasonable", I mean far less redacted than is currently being done with 9.0). A UserLog needs to collect log info for the one or more sessions a user may have running at any given time, so it is possible to view the UserLog from another session the user has open. It might even be handy to have a button to access the user log placed next to the Task Activity button, so non-admins can easily access their user log without having access to System.
The vast of majority of debugging stuff I personally write to the ErrorLog is of no value much more than 5 minutes later and simply makes it harder to find the log entries that do belong in the ErrorLog. Some of my log entries will still need to go to the ErrorLog, but the vast majority would more rightfully belong in a UserLog. An added benefit of a UserLog is that the entries will already be filtered to that user and with no other fluff. The only downside of this possible UserLog solution would be if one forgot to turnoff debugging when done (not that we ever forget), it might take longer for us to notice, during which system performance would remain less than optimal.