记录日志是我们程序中必不可少的一个功能,但是日志文件如果没有合理的管理,时间长了几百兆的日志文件就很难分析了(都不想打开看),但是又不可能经常手动去管理它
日志轮转:根据时间或者文件大小控制日志的文件个数,不用我们手动管理
python中logging模块内置的有几个支持日志轮转的handler
常用的有TimedRotatingFileHandler根据时间轮转 RotatingFileHandler根据文件大小轮转
但是内置的这些handler是多线程安全的,而不支持多进程(可以修改源码加锁保证进程安全)
多进程的时候可以使用ConcurrentLogHandler(需要自行安装)按照文件大小轮转
pip install ConcurrentLogHandler
一、简单的日志轮转功能实现:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import logging
from cloghandler import ConcurrentRotatingFileHandler
from config import LOG_PATH, LOG_FILENAME, LOG_MAX_BYTES
def create_logger(log_path=os.getcwd(), # 存放日志的目录
level=logging.DEBUG,
formatter=logging.BASIC_FORMAT, # 日志输出格式
logger_name="", # 可以使用logging.getlogger(logger_name)使用此logger