2014-08-27 51 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模塊

相關問題