Я настраиваю регистратор для моего приложения на Python, используя Yaml.
Пока фактическая конфигурация выполняется в app/__init__.py
, информация о конфигурации считывается из logging.yaml
__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
Почему он не распечатывается в файл журнала?