We often need to make internal object state and state transitions more visible. There are the following three common cases for increased visibility:
- One case is for auditing an application, where we want to keep a history of state changes for an object.
- Another situation is to track the secure operations of an application and identify who is carrying out sensitive actions.
- A third common situation is to help debug problems that arise during use.
The Python logger is a flexible way to make internal object states and state transitions visible.
There are times when we have multiple logs with different kinds of information. We might distribute security, audit, and debugging into separate logs. In other cases, we might want a unified log. The logging module permits a variety of configurations.
Some users may want verbose output to confirm that the...