如何在独立应用程序中手动添加日志处理程序到gunicorn logger?

时间:2016-11-07 06:04:26

标签: python logging logstash gunicorn

我正在编写这样的独立gunicorn应用程序:http://docs.gunicorn.org/en/stable/custom.html?highlight=standalone

我想在logstash中记录gunicorn错误消息。 我的问题:

如何在我的应用程序中获取gunicorn错误(和访问)记录器对象并在其上添加处理程序?

1 个答案:

答案 0 :(得分:1)

我想使用我的记录器,所以这个响应是关于替换logger(我自己配置​​的方法)。如果您只想添加处理程序,则可以向access_logerror_log添加处理程序。我需要更换记录器,我已经这样做了:

from gunicorn.glogging import Logger as GLogger
logger = logging.getLogger(__name__)

class GunicornLogger(GLogger):
    def setup(self, cfg):
        super(GunicornLogger, self).setup(cfg)
        self.access_log = logger
        self.error_log = logger

在启动应用程序时:

self.options['logger_class'] = '<import_to_this_file>.GunicornLogger'

注意:之后accesslogerrorlog配置参数无效,因为我已覆盖原始记录器。正如我所说,如果你想要,你可以注册新的处理程序......

适用于我gunicorn==19.7.1