将日志添加到 Airflow 日志

新手上路,请多包涵

如何将我自己的日志添加到自动生成的 Apache Airflow 日志中?任何打印语句都不会在那里记录,所以我想知道如何添加我的日志以便它也显示在 UI 上?

原文由 user3542930 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 698
2 个回答

我认为您可以通过使用日志记录模块并将配置信任给 Airflow 来解决这个问题。

就像是:

 import ...

dag = ...

def print_params_fn(**kwargs):
    import logging
    logging.info(kwargs)
    return None

print_params = PythonOperator(task_id="print_params",
                              python_callable=print_params_fn,
                              provide_context=True,
                              dag=dag)

原文由 Ivan Gozali 发布,翻译遵循 CC BY-SA 3.0 许可协议

在可调用 PythonOperator 的 python 内部,您可以使用:

 import logging

LOGGER = logging.getLogger("airflow.task")
LOGGER.info("airflow.task >>> 2 - INFO logger test")

这将产生正确的输出,如:

 [2019-12-26 09:42:55,813] {operations.py:86} INFO - airflow.task >>> 2 - INFO logger test

对于您的自定义记录器的情况:

 LOGGER = logging.getLogger(__name__)
LOGGER.info("__name__ >>> 2 - INFO logger test")

你会得到重复的格式:

 [2019-12-26 09:42:55,813] {logging_mixin.py:112} INFO - [2019-12-26 09:42:55,813] {operations.py:79} INFO - __name__ >>> 2 - INFO logger test

原文由 Alexander K 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进