如何在logu格式上添加ti.jobid?

2024-05-23 18:21:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我想自定义日志格式以包含任务实例作业id

我尝试了以下方法:

class AddJobIdFilter(logging.Filter):
    def __init__(self, param=None):
        self.param = param

    def filter(self, record):
        record.job_id = self.param
        return True

def just_print(**kwargs):
    import logging
    logger = logging.getLogger(__name__)
    logger.addFilter(AddJobIdFilter(param=kwargs['task_instance'].job_id))
    syslog = logging.StreamHandler()
    formatter = logging.Formatter('[ %(job_id)s ]: %(message)s')
    syslog.setFormatter(formatter)
    logger.setLevel(logging.INFO)
    logger.addHandler(syslog)
    logger.info('Testing addFilter')

t2 = PythonOperator(task_id='t2',
                    python_callable=just_print,
                    provide_context=True,
                    )

这就产生了这样的结果: [2019-08-22 00:34:20,735] {{logging_mixin.py:95}} WARNING - [ 12669 ]: Testing addFilter

但它只适用于一个操作符。如何将气流记录配置为全局应用于任何运营商


Tags: selfidtrueparamloggingdefjoblogger