{site_name}

{site_name}

🌜 搜索

PythonTimedRotatingFileHandler是Python日志处

Python 𝄐 0
Python timedelta用法,Python timedate.timedate,Python time单位,python timedelta函数
PythonTimedRotatingFileHandler是Python日志处理器(logging handler)的一种类型,在指定的时间间隔内按照文件名规则将日志写入到不同的日志文件中,从而实现日志轮换的功能。

具体来说,PythonTimedRotatingFileHandler会在一定的时间间隔后,根据指定的文件名规则生成一个新的日志文件,并将日志写入该文件。在生成新的日志文件时,旧的日志文件可以被重命名或删除。这样做的好处是可以保证日志文件不会无限制地增长,从而节省磁盘空间。

下面是一个简单的例子:

python
import logging
from logging.handlers import TimedRotatingFileHandler

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

handler = TimedRotatingFileHandler(filename='example.log', when='midnight', backupCount=7)
handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))

logger.addHandler(handler)

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



上述代码创建了一个名为example.log的日志文件。参数when='midnight'意味着在每天午夜时,生成一个新的日志文件。backupCount=7表示最多保存7个旧的日志文件。因此,当程序运行超过7天时,最早的日志文件将被删除。

在循环中,我们使用 logger.info()写入了10条日志,这些日志将被写入到example.log文件中。由于我们设置了每天午夜生成一个新的日志文件,因此在程序运行的第二天,就会生成一个新的日志文件,并将第一天的日志保存在名为example.log.1的旧日志文件中,以此类推。

最终,程序将保留最近7天内的所有日志文件,这样可以避免不必要的磁盘空间浪费。