Logging is often an efficient way to start analyzing where an issue comes from. If most actions and errors can be logged easily in the application, then this can become a powerful tool to detect when errors occurred, and understand what happened.
However, for such a mechanism to be really useful, it has to rely on a real logging system, and not only debug traces that must be decommented manually. Fortunately, once again, Python comes with a complete logging system in the standard library. The logging module contains all the features needed to efficiently use logs:
- Configurable log levels
- Several logging namespaces
- The possibility to add new backends to process the logs
So, a good way to help find issues, both during testing and debugging, is to add logs to all important actions and all possible failures. The natural way to implement this is with a logging driver. Such...