You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取并保存cwl-runner运行工作流时的中间调试日志?

获取CWL运行日志及中间步骤输出的方法

一、捕获终端全量日志到文件

cwl-runner的终端输出本身包含所有步骤的执行日志,直接用shell重定向就能把所有内容保存到指定文件:

cwl-runner workflow.cwl inputs.yml > run_full.log 2>&1
  • > 将标准输出(常规日志)写入run_full.log
  • 2>&1 将标准错误(报错信息)也重定向到同一个文件,确保日志完整

二、使用cwltool的专用日志参数

cwl-runner是cwltool的封装,直接用cwltool的日志参数可以更灵活地管理日志:

  • --log-dir <目标目录>:将每个步骤的日志单独保存到指定目录下,每个步骤对应一个独立的日志文件,同时终端仍会输出汇总日志
  • --debug:生成更详细的调试日志,包含中间步骤的执行细节,适合排查问题
  • --quiet:抑制终端的冗余输出,仅保留关键提示,详细日志只写入--log-dir指定的文件

三、保留中间步骤输出文件

要获取中间步骤的输出文件,需配合临时目录相关参数:

  • --keep-tmpdir:阻止cwl-runner自动删除运行过程中创建的临时目录,该目录包含所有中间步骤的输出文件
  • --tmpdir-prefix <路径>:指定临时目录的前缀位置,方便后续定位中间文件(需与--keep-tmpdir配合使用)

组合使用示例

如果需要同时保存全量终端日志、分步日志,且保留中间输出,可组合命令如下:

cwl-runner --debug --log-dir ./workflow_logs --keep-tmpdir --tmpdir-prefix ./workflow_temp workflow.cwl inputs.yml > full_run.log 2>&1

执行后:

  • full_run.log 保存终端所有输出内容
  • ./workflow_logs 目录下是每个步骤的独立日志文件
  • ./workflow_temp 开头的目录中存储所有中间步骤的输出文件

补充说明

你之前尝试的--tmpdir-prefix仅指定临时目录位置,默认会自动删除,需配合--keep-tmpdir才能保留中间文件;--output-dir仅用于保存最终输出结果,不包含中间步骤和日志内容,因此无法满足需求。

内容的提问来源于stack exchange,提问作者syllogismos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:40:49