Передача нескольких обработчиков в логгер - PullRequest
0 голосов
/ 15 марта 2019

У меня есть файл конфигурации .yaml для ведения журналов (Parital):

handlers:
  console:
    class: logging.StreamHandler
    stream: ext://sys.stderr
    formatter: basic
  console_file: 
    class: logging.handlers.RotatingFileHandler
    filename: bvbot_general.log
    maxBytes: 20000000
    backupCount: 3
    encoding: utf-8
    formatter: basic

loggers:
  general:
    handlers: [console]
    level: DEBUG
    propagate: False
  general_file:
    handlers: [console_file]
    level: DEBUG
    propagate: True

root:
  handlers: [console]
  level: INFO

По отдельности, общие и общие файлы регистрации работают, как и ожидалось.Но если я добавлю обработчик 'console_file' в logger 'general', я получу вывод только на консоль, а не в файл, как ожидалось:

loggers:
  general:
    handlers: [console, console_file]
    level: DEBUG
    propagate: False

1 Ответ

1 голос
/ 15 марта 2019

Как получить ваш логгер?У меня отлично работает со следующим кодом:

import os
import logging.config

import yaml

# Loading from logging.yaml
# ...

logger = logging.getLogger('general')
logger.info('hello')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...