Python 基于已执行任务队列拆分芹菜日志
问题如下: 我在芹菜中设置了两个队列,Q1和Q2,并用下面的代码启动了芹菜应用程序Python 基于已执行任务队列拆分芹菜日志,python,logging,filter,celery,kibana,Python,Logging,Filter,Celery,Kibana,问题如下: 我在芹菜中设置了两个队列,Q1和Q2,并用下面的代码启动了芹菜应用程序 python -m celery --loglevel=INFO --no-color --app=myapp.tasks.capp -Q Q1,Q2 worker -c 10 我目前使用pygelf通过UDP将所有日志发送到kibana。我想根据消息在其中执行的队列分割消息,以便为它们分配特定的存储标记 目前我做的事情如下: capp = celery.Celery('myapp', broker=redis
python -m celery --loglevel=INFO --no-color --app=myapp.tasks.capp -Q Q1,Q2 worker -c 10
我目前使用pygelf通过UDP将所有日志发送到kibana。我想根据消息在其中执行的队列分割消息,以便为它们分配特定的存储标记
目前我做的事情如下:
capp = celery.Celery('myapp', broker=redis_broker, backend=config.celery.get('broker'))
class RootContextFilter(logging.Filter):
def filter(self, record):
if capp.current_task.queue == 'Q1':
record.tag = tag_for_Q1
elif capp.current_task.queue == 'Q2':
record.tag = tag_for_Q2
return True
@setup_logging.connect
def setup_loggers(loglevel, logfile, format, colorize, **kwargs):
root_logger = logging.getLogger()
root_logger.setLevel(loglevel)
log_handler = GelfUdpHandler(host='my_logstash', port=port, include_extra_fields=True)
log_handler.addFilter(RootContextFilter())
root_logger.addHandler(log_handler)
虽然我希望每个日志都指向kibana中分配的标记,但是日志最终显示在两个标记中
是否有我遗漏的东西,是否有方法确保日志不会复制到两个标记