在Airflow中写入日志的一种方法是从PythonOperator中返回一个字符串,就像这里第44行所示。
是否还有其他方式可以让我写入Airflow日志文件?我发现使用print语句无法保存到日志中。
你可以将日志模块导入到你的代码中,然后通过这种方式写入日志
import logging
logging.info('Hello')
这里有更多选择
import logging
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')
你可以使用Airflow日志记录器
import logging
logger = logging.getLogger("airflow.task")
logger.error("Your custom error")
logging.getLogger("airflow.task")
来要求Airflow提供由Airflow配置的记录器。日志将保存在airflow.cfg
文件中指定的目录中。 - Heedge你可以使用一个记录器混合类:
https://github.com/apache/airflow/blob/main/airflow/utils/log/logging_mixin.py
from airflow.utils.log.logging_mixin import LoggingMixin
LoggingMixin().log.info("Hello")
然后在Airflow日志中,您将看到:
[2021-07-07 15:55:42,370] {{logging_mixin.py:112}} INFO - Hello