python timedrotatingfilehandler
时间: 2023-09-06 11:03:51 浏览: 46
Python中的TimedRotatingFileHandler是一个日志处理器,用于按时间对日志文件进行循环切割。
循环切割意味着在固定的时间间隔内,会为每个时间段生成一个新的日志文件。
TimedRotatingFileHandler的主要参数是filename、when和interval。
- filename:要写入的日志文件的文件名。
- when:确定日志文件轮换的时间单位,可以是"midnight"(午夜)、"S"(秒)或"H"(小时)等。
- interval:时间间隔,表示多少个when单位后会进行日志文件切割。
示例代码如下:
```python
import logging
from logging.handlers import TimedRotatingFileHandler
logger = logging.getLogger("example_logger")
logger.setLevel(logging.DEBUG)
# 创建TimedRotatingFileHandler对象
handler = TimedRotatingFileHandler("example.log", when="midnight", interval=1)
handler.suffix = "%Y-%m-%d" # 日志文件名后缀格式化
# 设置日志格式
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s")
handler.setFormatter(formatter)
# 将handler添加到logger
logger.addHandler(handler)
# 输出日志
logger.debug("Debug message")
logger.info("Info message")
logger.warning("Warning message")
```
上述代码创建了一个logger对象,设置了日志级别为DEBUG。然后,创建了一个TimedRotatingFileHandler对象,设置切割文件名后缀的格式为年-月-日。接着,设置了日志的格式,并将handler对象添加到logger中。最后,通过logger输出了不同级别的日志信息。
当运行以上代码时,每天午夜(当when="midnight")到来时,会自动将日志写入一个新的文件,文件名的格式为example_2022-05-23.log、example_2022-05-24.log等。这样就实现了按时间循环切割日志文件的功能。