Current error-log implementation
In the default setup, IErrorLog uses the ErrorLog class as a shared singleton service.
add(error) logs the error to the console and also emits it through the observable error stream. clear() clears the console.
The module also includes PrettyPrinter and printValue to format complex values for debugging output.