在Python中,可以使用logging模块来实现日志的轮转。日志轮转是指在日志文件达到一定大小或者时间间隔时,自动将日志文件重命名并创建一个新的日志文件来继续记录日志。以下是一个简单的示例代码,演示了如何在Python中实现日志轮转。
import logging
from logging.handlers import RotatingFileHandler
# 创建一个logger对象
logger = logging.getLogger('my_logger')
logger.setLevel(logging.DEBUG)
# 创建一个RotatingFileHandler对象,用于处理日志轮转
log_handler = RotatingFileHandler('my_log.log', maxBytes=10000, backupCount=2)
log_handler.setLevel(logging.DEBUG)
# 设置日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
log_handler.setFormatter(formatter)
# 将handler对象添加到logger对象
logger.addHandler(log_handler)
# 记录日志
logger.debug('This is a debug message')
logger.info('This is an info message')
logger.warning('This is a warning message')
logger.error('This is an error message')
logger.critical('This is a critical message')
在上面的示例中,我们首先创建了一个logger对象,并设置了其级别为DEBUG。然后创建了一个RotatingFileHandler对象,指定了日志文件名为my_log.log,并设置了最大文件大小为10000字节,备份文件数量为2个。接着设置了日志格式并将handler对象添加到logger对象中。最后使用logger对象记录了不同级别的日志消息。
当日志文件大小达到指定大小时,RotatingFileHandler会自动将当前日志文件重命名为备份文件,并创建一个新的日志文件继续记录日志。备份文件数量限制了可以保留的备份文件数量,超出指定数量的备份文件会被删除。