{site_name}

{site_name}

🌜 搜索

PythonRotatingFileHandler是Python标准库loggi

Python 𝄐 0
python rotate,pythonrotation
PythonRotatingFileHandler是Python标准库logging模块中的一个类,用于将日志记录到文件,并在日志文件达到一定大小或者日期发生变化时将日志文件切割成多个文件。

具体来说,PythonRotatingFileHandler通过继承自logging.FileHandler类实现,它包含以下参数:

- filename:所要写入日志的文件名。
- mode:打开文件的模式,默认为'a+'。
- maxBytes:单个日志文件的最大大小,超过该大小后会创建新的日志文件,默认为0,即不限制文件大小。
- backupCount:保留日志文件的数量,默认为0,即只保留当前日志文件。
- encoding:编码方式,默认为utf-8。
- delay:是否延迟打开日志文件,默认为False,即立即打开。

下面是一个简单的例子:

python
import logging
from logging.handlers import RotatingFileHandler

logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)

handler = RotatingFileHandler(filename='app.log', mode='a+', maxBytes=1024, backupCount=3, encoding='utf-8')
handler.setLevel(logging.INFO)

formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

logger.addHandler(handler)

for i in range(10):
logger.info(f'log message {i}')


这个例子中,我们首先创建了一个名叫app.log的RotatingFileHandler,设置每个日志文件的最大大小为1024字节,最多保留3个备份日志文件。然后设置了日志记录的格式为%(asctime)s - %(levelname)s - %(message)s,将其添加到logger中。最后通过一个循环写入10条INFO级别的日志消息。

当我们运行这个程序时,首先会创建一个app.log文件,然后每当该文件达到1024字节时,就会创建新的日志文件,并删除超过备份数量的旧日志文件。在循环结束后,我们可以在当前目录下找到4个不同的日志文件:app.log、app.log.1、app.log.2、app.log.3。