mode = 'w' работает только с logging.FileHandler, но не с logging.handlers.RotatingFileHandler - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь создать логи, используя следующую конфигурацию логов.Но в обработчике 'info_file_handler' mode: 'w' не перезаписывает файл классом: logging.handlers.RotatingFileHandler.я должен заменить класс на logging.FileHandler, выходной файл журнала перезаписывается.logging.handlers.RotatingFileHandler нужен какой-то дополнительный код для добавления сюда?

# https://gist.github.com/kingspp/9451566a5555fb022215ca2b7b802f19
version: 1
disable_existing_loggers: true
formatters:
    standard:
        # format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
        format: "%(levelname)s: %(message)s"
    error:
        format: "%(levelname)s <PID %(process)d:%(processName)s> %(name)s.%(funcName)s(): %(message)s"

handlers:
    console:
        class: logging.StreamHandler
        level: DEBUG
        formatter: standard
        stream: ext://sys.stdout

    info_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: INFO
        formatter: standard
        filename: info.log
        mode: 'w'
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8

root:
    level: NOTSET
    handlers: [console]
    propogate: no

loggers:
    my_module:
        level: INFO
        handlers: [info_file_handler]
        propogate: no

1 Ответ

0 голосов
/ 05 июля 2019

У меня такая же проблема. Как вращать файл при каждой регистрации начинается с указанного размера файла вращения. Из logging.handlers:

        If maxBytes is zero, rollover never occurs.
        """
        # If rotation/rollover is wanted, it doesn't make sense to use another
        # mode. If for example 'w' were specified, then if there were multiple
        # runs of the calling application, the logs from previous runs would be
        # lost if the 'w' is respected, because the log file would be truncated
        # on each run.
        if maxBytes > 0:
            mode = 'a'

IMO. Кажется, что другой режим, кроме «a», бесполезен, поэтому «mode» можно удалить. (?)

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