Python 芹菜日志到书面记录

Python 芹菜日志到书面记录,python,celery,papertrail-app,Python,Celery,Papertrail App,我正在用烧瓶和芹菜制作一个应用程序,我正在尝试将我的应用程序日志发送到书面记录。这对于我的常规(同步)应用程序日志很好。配置如下所示: import logging from logging.handlers import SysLogHandler import socket class ContextFilter(logging.Filter): hostname = socket.gethostname() def fi

我正在用烧瓶和芹菜制作一个应用程序,我正在尝试将我的应用程序日志发送到书面记录。这对于我的常规(同步)应用程序日志很好。配置如下所示:

    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)
导入日志
从logging.handlers导入SysLogHandler
导入套接字
类ContextFilter(logging.Filter):
hostname=socket.gethostname()
def过滤器(自我,记录):
record.hostname=ContextFilter.hostname
返回真值
f=上下文过滤器()
logger=logging.getLogger()
logger.setLevel(logging.INFO)
logger.addFilter(f)
格式化程序=日志记录。格式化程序(
“%(asctime)s-%(名称)s-%(级别名称)s-%(消息)s”
)
syslog=SysLogHandler(地址=('.papertrailap.com',))
syslog.setFormatter(格式化程序)
logger.addHandler(syslog)
我曾尝试将此记录器添加到芹菜任务中,但我看到的只是sdout中的输出,而Papertrail中没有任何内容。芹菜能绕过正常的伐木流程吗

我知道芹菜有一个特定于任务的记录器,但我找不到任何关于如何使用芹菜配置它的文档。

如果我读得正确,秘诀是调用函数
redirect\u stdouts\u to\u logger
将stdout发送到您的
SysLogHandler
实例。还有更多。

如果我读得正确,秘诀是调用函数
将stdout重定向到\u logger
,将stdout发送到您的
SysLogHandler
实例。多吃点