Dataform中JavaScript代码如何输出日志?工作流日志为何不显示在Google Cloud Logging?
关于Dataform日志输出的问题解答
1. 在Dataform中,如何让JavaScript代码输出日志信息?
- 使用Dataform内置的
dataform.log方法替代普通console.log,示例代码:// 基础日志输出 dataform.log("数据转换开始执行"); // 按级别输出日志 dataform.log.info("这是一条 info 级别的日志"); dataform.log.warn("这是一条警告日志"); dataform.log.error("这是一条错误日志"); - 该方法会将日志输出到Dataform运行日志系统,无论是本地运行还是云端部署的作业都能捕获。
2. console.log未出现在Google Cloud Logging的原因及解决方法
- 核心原因:Dataform云端运行环境不会捕获
console.log的输出,必须使用官方提供的dataform.log系列方法,这类日志会被自动转发到Cloud Logging。 - 检查运行环境:确保作业是部署在Google Cloud Dataform服务上运行,本地运行的日志仅会显示在本地终端,不会同步到Cloud Logging。
- 调整Cloud Logging过滤规则:在Cloud Logging控制台中,使用过滤条件
resource.type="dataform_repository"或者指定你的Dataform仓库ID、作业ID来筛选日志,避免因过滤规则导致日志不可见。 - 验证服务账号权限:运行Dataform作业的服务账号需要拥有
logging.logWriter权限,若权限缺失,日志无法写入Cloud Logging,需为账号添加对应角色(比如Logs Writer角色)。
内容的提问来源于stack exchange,提问作者Riduidel
相关产品推荐
相关产品推荐

