Python记录器:限制日志文件似乎不限制我的文件

时间:2019-04-11 11:55:16

标签: python logging

所以我想限制我的log文件。

import logging
import colorlog
from logging.handlers import RotatingFileHandler

def init_logger(dunder_name, testing_mode) -> logging.Logger:
    log_format = '[%(asctime)s]: [%(levelname)s]: %(message)s'

    bold_seq = '\033[1m'
    colorlog_format = (
        f'{bold_seq} '
        '%(log_color)s '
        f'{log_format}'
    )

    logFile = 'app.log'
    colorlog.basicConfig(format=colorlog_format)

    handler = RotatingFileHandler(logFile, mode='a', maxBytes=50, backupCount=0, encoding=None, delay=0)
    logger = logging.getLogger(dunder_name)

    if testing_mode:
        logger.setLevel(logging.DEBUG)
    else:
        logger.setLevel(logging.INFO)

    formatter = logging.Formatter(log_format)
    handler.setFormatter(formatter)
    logger.addHandler(handler)


    return logger

在定义maxBytes=50之后,我看到我的日志文件继续增长(此刻4MB

我做错了什么?

1 个答案:

答案 0 :(得分:2)

因为backupCount0

  

每当当前日志文件的长度接近maxBytes时,就会发生翻转。但是如果maxBytes或backupCount中的任何一个为零,则永远不会发生过渡,因此通常需要将backupCount设置为至少1,并且maxBytes为非零。

https://docs.python.org/3/library/logging.handlers.html#logging.handlers.RotatingFileHandler