Python, настраивающий ведение журнала через файл yaml - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь настроить ведение журнала для моего приложения, используя файл yaml и logging.config.dictConfig, это на самом деле не работает, я не думаю, что конфигурация принимается logging.

вот мой файл yaml:

  version: 1
  logging:
    disable_existing_loggers: true
    formatters:
      multi-process:
        class: logging.Formatter
        style:
        datefmt: "%I:%M:%S"
        format: "{levelname:8s}; {process:5d}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
      multi-thread:
        class: logging.Formatter
        style:
        datefmt: "%I:%M:%S"
        format: "{levelname:8s}; {threadName:5d}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
      verbose:
        class: logging.Formatter
        style:
        datefmt: "%I:%M:%S"
        format: "{levelname:8s}; {process:5d}; {threadName:8s}; {asctime:s}; {name:<15s} {lineno:4d}; {message:s}"
    handlers:
      console:
        level: DEBUG
        class: logging.StreamHandler
        formatter: verbose
        stream: ext://sys.stdout
      file_handler:
        level: INFO
        class: logging.handlers.WatchedFileHandler
        formatter: verbose
        filename: backtest.log
        mode: a
        encoding: utf-8
    loggers:
      example:
        level: DEBUG
        handlers: 
          - console
    root:
      handlers:
        - console
      level: DEBUG

вот как я его загружаю:

with open('logging.yaml', 'r') as stream:
    yamld = yaml.load(stream)
    logging.config.dictConfig(yamld)

logger = logging.getLogger("example")

logger.debug('debug message')
logger.info('info message')
logger.warn('warn message')
logger.error('error message')
logger.critical('critical message')

это мой вывод на консоль:

warn message
error message
critical message

как будто мои конфигурации вообще не загружаются

1 Ответ

0 голосов
/ 11 января 2019

понял, logging dict - это не то, что ищет модуль журналирования.

Мне просто нужно было разместить свою равнину без logging:

...