2014-08-27 53 views
2

我有一个基于ini文件配置的python日志记录工作设置。来自fileconfig的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' 

有什么想法?

回答

-1

使用额外的导入语句到 import logging.conf模块

相关问题