What is logging?
Logging is a very important tool in a programmer’s toolbox that enables your code to record events as the program executes for later analysis.
The application that contains log messages provides developers extra eyes to understand the system flow in different ways.
Logs can store user information like timestamp, IP, and location during the login time of a particular app.
Why use logging?
- A useful debugging feature that captures and records events while the app is running.
- Always records data that is more or less important that brings insight into how things are functioning.
- Provide a highly customizable output.
- Provide transaction records of a program’s execution.
Logging in Python
Python as the most popular programming language supports logging features diligently. Its built-in logging module is a powerful module that fulfills all the needs of beginners as well as enterprise teams.
Logging module is used by almost all the third-party libraries to log messages and you can use your own logs to produce a homogeneous for your app.
Logging Levels
Python logging module by default has five standard different levels/methods to use for recording log messages. Such levels indicate the different types of status of the application.
- DEBUG
- INFO
- WARNING
- ERROR
- CRITICAL
1. DEBUG: It is typically used to provide diagnostic information that is useful when we are tracking down a problem while debugging.
2. INFO: It is used to indicate that a particularly interesting operation was able to execute normally i.e. general information about program execution results.
3. WARNING: It is used to log something unexpected, or an approaching problem. Such as running out of storage space or the inability to communicate with the remote server.
4. ERROR: It is used to log error messages in the condition that the app is unable to perform a specific operation due to a problem.
5. CRITICAL: It is used to indicate that the program may not be able to continue due to serious errors.
Example
import logging logging.debug('This is a DEBUG message') logging.info('This is an INFO message') logging.warning('This is a WARNING message') logging.error('This is an ERROR message') logging.critical('This is a CRITICAL message')
Output:
WARNING:root:This is a WARNING message ERROR:root:This is an ERROR message CRITICAL:root:This is a CRITICAL message
In the above output, debug() and info() messages didn’t get logged because, by default, the logging module logs the messages with a severity level of WARNING or above.
But if you want to log the messages from DEBUG level, then set the level=logging.DEBUG and pass inside the basicConfig function of the logging module as:
import logging # configure to show logs from DEBUG level logging.basicConfig(level=logging.DEBUG) logging.debug('This is a DEBUG message') logging.info('This is an INFO message') logging.warning('This is a WARNING message') logging.error('This is an ERROR message') logging.critical('This is a CRITICAL message')
Output:
DEBUG:root:This is a DEBUG message INFO:root:This is an INFO message WARNING:root:This is a WARNING message ERROR:root:This is an ERROR message CRITICAL:root:This is a CRITICAL message