У меня есть рабочая настройка ведения журнала python на основе конфигурации файла ini.
Я пытаюсь создать собственный обработчик для отправки уведомления aws-sns при регистрации в определенном регистраторе.
Я смог добиться этого, настроив регистраторы и обработчики из кода. Нравится => http://pantburk.info/?blog=77
Но если я попытаюсь настроить регистратор из файла конфигурации, он не сработает. Я предполагаю, что модуль ведения журнала Python пытается найти собственный обработчик внутри пакета python logging.handlers. Мой пользовательский класс находится в моем приложении.
Мой файл конфигурации:
[loggers]
keys=root,sns
[handlers]
keys=consoleHandler,snshandler
[logger_root]
handlers=consoleHandler
level=CRITICAL
[logger_sns]
handlers=snshandler
level=DEBUG
propagate=0
qualname=sns
[handler_snshandler]
class=coco.loggers.sns_handler.SNSHandler
formatter=simpleFormatter
level=DEBUG
[formatter_simpleFormatter]
datefmt=%Y-%m-%d %H:%M:%S
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
[formatters]
keys=simpleFormatter
Мой собственный класс обработчика: coco.loggers.sns_handler.SNSHandler.
import logging
from coco.notifier.sns import SNS
class SNSHandler(logging.Handler):
def __init__(self):
super(SNSHandler, self).__init__()
def emit(self, record):
SNS().queue(message=record.getMessage())
Я настраиваю регистратор из файла конфигурации следующим образом:
logging.config.fileConfig('/path/to/conf')
Я вижу это исключение, когда пытаюсь настроить регистратор
AttributeError: 'module' object has no attribute 'loggers'
есть идеи?