一、代码
import logging
from logging.handlers import RotatingFileHandler
# 配置日志
log_file_path = './logs/test.log'
file_handler = RotatingFileHandler(log_file_path, maxBytes=10, backupCount=5)# 设置格式化器,以使日志更易读
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
file_handler.setFormatter(formatter)# 获取根日志记录器并设置级别
logger = logging.getLogger()
logger.setLevel(logging.INFO)# 添加文件处理器到根日志记录器
logger.addHandler(file_handler)# 添加控制台处理器
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)for i in range(100):logger.warning(f"Attempt {i} failed")
1、RotatingFileHandler()
`RotatingFileHandler` 实例,用于管理日志文件的轮换。
1. `file_handler = RotatingFileHandler(...)`:创建一个 RotatingFileHandler 对象并将其赋值给 `file_handler` 变量。
2. `log_file_path`:这是日志文件的路径。它应该是一个字符串,指定日志文件的位置和名称,例如 "/path/to/your/app.log"。
3. `maxBytes=10*1024*1024`:- 这设置了单个日志文件的最大大小。- `10*1024*1024` 计算结果是 10,485,760 字节,也就是 10 MB。- 当日志文件达到这个大小时,它将被轮换。
4. `backupCount=5`:- 这指定了要保留的备份日志文件的数量。- 在这个配置中,系统将保留 5 个旧的日志文件,加上当前的活动日志文件。
二、功能
1、test.log的日志文件被保存在特定目录下
2、日志会在console显示
三、结果
1、console端
2、文件