【发布时间】:2014-08-27 19:42:05
【问题描述】:
我有一个基于 ini 文件配置的 python 日志记录工作设置。
我正在尝试创建一个自定义处理程序,以便在登录到特定记录器时发送 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'
有什么想法吗?
【问题讨论】:
标签: python python-2.7 logging amazon-sns