Sometimes I find myself having to write a short Python script with proper logging capabilities.
This code snippet demonstrates how to do use Python’s official logging module using very few lines but still with all these features in:
- basicConfig
- log rotation
- formating
import logging
from logging.handlers import RotatingFileHandler
logging.basicConfig(
handlers=[
RotatingFileHandler(
'/path/to/log/file.log',
maxBytes=10240000,
backupCount=5
)
],
level=logging.INFO,
format='%(asctime)s %(levelname)s PID_%(process)d %(message)s'
)
logging.info('Hello world')
logging.error('Oh no, an error occurred!')
The following lines are interesting:
- ‘/path/to/log/file.log’ -> lets you specify where the log file is
- maxBytes=10240000 -> maximum size of a log before being rotated
- backupCount=5 -> how many rotated files to keep
- format=’%(asctime)s %(levelname)s PID_%(process)d %(message)s’ -> format of each log line; pay attention to the PID, very useful if your script can be invoked simultaneously multiple times, because this will let you split logs from different parallel runs