Python logger: ограничение файла журнала не ограничивает мой файл - PullRequest
0 голосов
/ 11 апреля 2019

Итак, я хочу ограничить мой 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 Ответ

2 голосов
/ 11 апреля 2019

Поскольку backupCount равно 0.

Ролловер происходит всякий раз, когда длина текущего файла журнала составляет почти maxBytes;но если либо значение maxBytes, либо backupCount равно нулю, ролловер никогда не происходит, поэтому обычно требуется установить для backupCount не менее 1 и иметь ненулевое значение maxBytes.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...