Apache Airflow自定义Trigger日志不显示问题求助
Apache Airflow自定义Trigger日志不显示的解决方法
核心问题定位
Trigger的日志不会输出在Sensor任务的日志中,而是输出在Airflow的triggerer进程日志里。你之前查看的ExampleSensor日志属于worker进程生成的内容,所以看不到Trigger的日志输出。
解决步骤
1. 查看正确的日志文件
- 本地部署:默认日志路径为
AIRFLOW_HOME/logs/triggerer,找到对应时间戳的日志文件直接查看 - 命令行实时查看:执行以下命令获取triggerer进程的实时日志
airflow logs -n triggerer
2. 调整日志级别配置
Airflow默认日志级别可能高于INFO,导致INFO级别的日志被过滤。需要修改airflow.cfg配置文件:
- 全局日志级别:找到
[logging]区块,设置logging_level = INFO - Triggerer单独配置:在
[triggerer]区块添加或修改logging_level = INFO
修改完成后重启triggerer服务:
# 本地部署 airflow triggerer restart # Docker部署则重启对应容器 docker restart <airflow-triggerer-container-name>
3. 修正Trigger代码中的日志写法
建议使用Airflow官方提供的LoggingMixin,确保日志能被Airflow的日志系统正确捕获:
from airflow.triggers.base import BaseTrigger from airflow.utils.log.logging_mixin import LoggingMixin class ExampleTrigger(BaseTrigger, LoggingMixin): def __init__(self, custom_params): super().__init__() self.custom_params = custom_params async def run(self, triggerer, event_buffer): # 使用self.logger输出日志 self.logger.info("Trigger开始执行,自定义参数: %s", self.custom_params) # 你的Trigger业务逻辑代码 ...
4. 验证效果
重新运行包含自定义Sensor的DAG,再查看triggerer进程的日志,此时应该能正常看到INFO级别的日志输出。
内容的提问来源于stack exchange,提问作者Jeremy Farmer
相关产品推荐
相关产品推荐

