【发布时间】:2018-12-07 21:33:48
【问题描述】:
Airflow 1.10.1 有一个名为“logging_level”的属性,我认为它与 Python 日志记录级别相关。当值为 INFO 或更低时,输出日志过于冗长,在部署中是不必要的。
相反,我希望能够仅记录气流框架错误,以及我希望我的应用程序记录的所有内容。然后我将日志记录减少到最低限度,大多数只是在应用程序的上下文中,并且只保留气流框架/执行错误。
在一个特定的 PythonOperator 中,我编写了 5 个不同级别的日志,以查看当我修改airflow.cfg logging_level 时它们会发生什么。
logging.debug('******************* HELLO debug *******************') logging.info('******************* HELLO info *******************') logging.warning('******************* HELLO warning *******************') logging.error('******************* HELLO error *******************') logging.critical('******************* HELLO critical *******************')
这个想法是通过将 logging_level 的气流.cfg 属性从调试更改为信息到警告,我可以看到越来越少的气流日志,而只留下我想要的应用程序特定日志。
第 1 步:logging_level = 调试
这是从调试向上具有所有级别日志的任务的日志。
第 2 步:logging_level = INFO
第 3 步:logging_level = 警告
当我们从 INFO 上升到 WARNING 时,文件是空的。我期待文件中的警告、错误和关键消息,而其余消息则被 Airflow 抑制,因为日志不包含来自 INFO 以上级别的气流的任何内容。
第 4 步:logging_level = 错误
这里又是同样的问题,文件是空的。我希望收到错误和关键消息,但文件是空的。
注意,在最后两张截图中,并不是路径无效,而是Airflow只是在日志文件中没有任何内容的情况下显示文件的路径。
所以我的问题是: 1)这只是一个气流错误吗? 2)我没有正确使用它吗?或者我是否需要执行其他操作以在生产中抑制来自 INFO 及以下信息的 Airflow 级别日志,并仅保留我的应用程序特定日志?
【问题讨论】: