Logging cleanup
After some discussion at the 2019 hackathon, there are some changes we should make to logging:
- Enable logging by default, but set the default level to only print warnings and errors. This will simplify error messages when logging is disabled.
- Don't print the stack to a critical level every time an exception is thrown. Instead, capture the stack trace in the
Error
class and make it available to handlers. Print the stack track when callingError::what
so that the default exception handler will provide a stack trace when possible.Error::GetMessage
will only print the error message, not the stack.