Debug logging is a tool for software developers to determine the cause of an error.
- Should never be enabled by default in production environments.
- Verbose - as much context as possible (e.g. stack traces)
- Technical - does not need to be user friendly
- Must contain a reference to the code in question (e.g. Class and line number)
- Can contain tracing information to help determine the flow through the system.