在Python中,使用logging模块配合RotatingFileHandler或TimedRotatingFileHandler可以实现日志文件按大小滚动。以下是一个配置示例,该配置将日志文件大小限制为1MB,并在超过该大小时滚动日志文件。
import logging from logging.handlers import RotatingFileHandler
1、创建一个RotatingFileHandler,设置文件大小和文件数量上限
rotating_handler = RotatingFileHandler('application.log', maxBytes=1024*1024, backupCount=1) rotating_handler.setLevel(logging.INFO)
2、创建一个Formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') rotating_handler.setFormatter(formatter)
3、创建一个logger
logger = logging.getLogger('myApp') logger.addHandler(rotating_handler) logger.setLevel(logging.INFO)
4、测试日志
logger.info('This is an info message')
在这个配置中,当application.log文件大小超过1MB时,会生成一个新的application.log文件,同时将旧的日志文件备份。通过backupCount参数可以指定保留的备份文件数量,超过这个数量将会被删除旧的日志文件。