【问题标题】:Python custom log handler from fileconfig来自 fileconfig 的 Python 自定义日志处理程序
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 1970-01-01
      • 2016-10-03
      • 2018-10-29
      • 2011-03-08
      • 1970-01-01
      • 2019-03-11
      • 2012-03-02
      • 1970-01-01
      相关资源
      最近更新 更多