Включение даты в имя файла журнала и создание файлов журнала определенного размера при сохранении последних 3 файлов журнала в python с помощью `logging.config.dictConfig ()` - PullRequest
0 голосов
/ 11 сентября 2018

Я настраиваю Python Logger, используя config. Я хочу, чтобы файл журнала содержал дату (и, возможно, время). Я также хочу, чтобы на эту дату каждый файл журнала имел только определенный размер и сохранял только 3 таких старых файла журнала.

Например, я хотел бы получить файлы журнала следующей формы:

mylog-2018-09-11.log
mylog-2018-09-11.log.1
mylog-2018-09-11.log.2
mylog-2018-09-11.log.3

Я попробовал RotatingFileHandler, используя конфигурацию следующей формы, как объяснено здесь :

config = {
    #...
    'handlers': {
        'file': {
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': 'mplog.log',
            'mode': 'w',
            'formatter': 'detailed',
            'maxBytes': 10000,
            'backupCount': 3
        },
    },
    #...
}
logging.config.dictConfig(config)

и создает файлы журнала следующим образом:

mylog.log
mylog.log.1
mylog.log.2
mylog.log.3

Но я не могу понять, как я могу получить дату в именах файлов журнала. Можно ли это сделать с помощью конфигов и с каким-нибудь обработчиком, скажем RotatingFileHandler или TimeRotatingFileHandler? Или, скажем, можно как-то установить имя файла журнала, чтобы оно содержало дату после dictConfig() вызова?

1 Ответ

0 голосов
/ 12 сентября 2018

Ваш пример показывает RotatingFileHandler, который вращает файлы на основе размера, а не даты. Вам нужно использовать TimedRotatingFileHandler, как описано здесь . Вы можете настроить его так же, как вы сделали RotatingFileHandler.

Обновление: Если вы хотите ограничить как датой , так и размером, вам нужно будет использовать подкласс обработчика, который делает именно то, что вы хотите.

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