繁体   English   中英

芹菜日志到Papertrail

[英]Celery logs to Papertrail

我正在使用Flask和Celery构建应用程序,并且正在尝试将应用程序日志发送到Papertrail。 这对于我的常规(同步)应用程序日志来说很好用。 配置如下所示:

    import logging
    from logging.handlers import SysLogHandler
    import socket


    class ContextFilter(logging.Filter):
        hostname = socket.gethostname()

        def filter(self, record):
            record.hostname = ContextFilter.hostname
            return True


    f = ContextFilter()
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    logger.addFilter(f)

    formatter = logging.Formatter(
        "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
    )
    syslog = SysLogHandler(address=('<myapp>.papertrailapp.com', <port>))
    syslog.setFormatter(formatter)
    logger.addHandler(syslog)

我曾尝试将此记录器添加到Celery任务中,但我看到的只是在sdout中输出,而在Papertrail中什么也没有。 Celery是否可以解决正常的日志记录流程?

我意识到Celery具有特定于任务的记录器,但是我找不到有关如何使用Celery对其进行配置的任何文档。

如果我读正确,秘诀就是调用函数redirect_stdouts_to_logger送标准输出到您的SysLogHandler实例。 Celery的文档更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM