环境

window10,pycharm23.0.2

logging的配置

使用 logging 模块时,你可以通过 logging.handlers.RotatingFileHandler 类来限制日志文件的大小。当日志文件达到指定大小时,RotatingFileHandler 会自动创建一个新的日志文件,并将后续的日志记录到新的文件中。

  • 代码
import logging
from logging.handlers import RotatingFileHandler

# 配置日志记录器
logger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)

# 设置日志文件的路径和最大大小
log_file_path = 'app.log'
max_size = 10 * 1024 * 1024  # 10 MB
backup_count = 5  # 最多保留 5 个备份文件

# 创建 RotatingFileHandler
handler = RotatingFileHandler(
    log_file_path,
    maxBytes=max_size,
    backupCount=backup_count,
    encoding='utf-8'
)

# 设置日志级别
handler.setLevel(logging.DEBUG)

# 创建日志格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

# 将 handler 添加到 logger
logger.addHandler(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.')

image.png

  • 日志滚动机制 当日志文件达到指定的最大大小 (maxBytes) 时,RotatingFileHandler 会自动创建一个新的日志文件,并将后续的日志记录到新的文件中。旧的日志文件会被重命名,例如 app.log.1, app.log.2 等,直到达到 backupCount 指定的数量。如果超过 backupCount,最老的日志文件会被删除,以便为新的日志文件腾出空间。