Почему регистратор только генерирует файл, но не выводит, используя конфигурацию yaml - PullRequest
0 голосов
/ 18 мая 2018

Я настраиваю регистратор для моего приложения на Python, используя Yaml.

Пока фактическая конфигурация выполняется в app/__init__.py, информация о конфигурации считывается из logging.yaml

enter image description here

__init__.py

import os
import logging.config
import yaml

config_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'logging.yaml')
if os.path.exists(config_path):
    with open(config_path, 'rt') as f:
        config = yaml.safe_load(f.read())
    logging.config.dictConfig(config)
else:
    logging.basicConfig(level=logging.INFO)

# Log that the logger was configured
logger = logging.getLogger(__name__)
logger.info('Completed configuring logger()!')

logging.yaml

version: 1
disable_existing_loggers: False

formatters:
    standard:
        format: "%(asctime)s - %(name)s - %(levelname)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: aae.log
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8

    error_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: ERROR
        formatter: standard
        filename: aae.log
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8

    debug_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: DEBUG
        formatter: standard
        filename: aae.log
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8


    warn_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: WARN
        formatter: standard
        filename: aae.log
        maxBytes: 10485760 # 10MB
        backupCount: 20
        encoding: utf8

loggers:

    app.run:
        level: DEBUG
        handlers: [info_file_handler, error_file_handler, debug_file_handler]
        propagate: no

Все уровни должны быть зарегистрированы в файл aae.log.Когда я запускаю приложение run.py, я вижу сгенерированный aae.log.Однако файл пуст.Ничего не выводится в этот файл.Даже не "Завершено конфигурирование logger ()!"в __init__.py

Почему он не распечатывается в файл журнала?

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