2015-10-26 76 views
1

我正在用Flask和Celery构建一个应用程序,我正尝试将我的应用程序日志发送到Papertrail。这适用于我的常规(同步)应用程序日志。配置是这样的:芹菜记录到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) 

我已经尝试添加该记录仪芹菜的任务,但我看到的是在Papertrail SDOUT并没有什么产出。芹菜会做些什么来解决正常的采伐流程?

我意识到芹菜有一个特定任务的记录器,但我找不到有关如何配置芹菜的任何文档。

回答

0

如果我正确读取this,秘诀就是调用函数redirect_stdouts_to_logger将stdout发送到您的SysLogHandler实例。 Celery's docs有更多。