Python2.7: настройка регистрации с помощью yaml
Я пытаюсь настроить регистратор из файла yaml. На docs.python.org я нашел пример создания файла yaml, и созданный мной файл выглядит следующим образом:
formatters:
simpleFormater:
format: '%(asctime)s - %(levelname)s: %(message)s'
datefmt: '%Y/%m/%d %H:%M:%S'
handlers:
console:
class: logging.StreamHandler
formatter: simpleFormater
level: DEBUG
stream: ext://sys.stdout
file:
class : logging.FileHandler
formatter: simpleFormater
level: WARNING
filename: songinfo.log
loggers:
clogger:
level: DEBUG
handlers: [console]
flogger:
level: WARNING
handlers: [file]
root:
level: DEBUG
handlers: [console, file]
Но я не могу найти пример загрузки конфигурации. Я видел что-то о загрузке:
logging.config.dictConfig(yaml.load(open('logging.conf', 'r')))
но это вызывает "Словарь ValueError: не указывает версию"
Итак, мой вопрос: как загрузить его в журнал на Python и как использовать clogger и flogger.
Ответы
Ответ 1
Из чтения документации python мы видим, что в конфигурации есть необходимый ключ, который говорит version
.
Вам нужна строка в вашей конфигурации, в которой говорится
version: 1
Или вы можете сделать:
with open('logging.conf') as f:
D = yaml.load(f)
D.setdefault('version', 1)
logging.config.dictConfig(D)