Skip to main content
Version: 5.1.0

get_task_log

所属分类:运维诊断 · Tool 名称get_task_log

功能说明

获取指定批量同步任务的执行日志,支持按日志级别过滤并返回最后 N 行。是排查同步失败原因的关键 Tool——通常先用 get_pipeline_statusget_pipeline_exec_history 找到失败任务的 taskId,再用本 Tool 拉取 ERROR 日志定位根因。

输入参数

参数类型必填说明
taskIdinteger任务 ID(可通过 get_pipeline_exec_historyget_pipeline_status 的返回获取)
logLevelstring日志级别过滤:ALL / ERROR / WARN,默认 ERROR
limitinteger返回最后几行日志,默认 50

输出结果

业务 JSON 直返(非信封结构),字段说明如下:

字段类型说明
taskIdinteger任务 ID(回显入参)
logLevelstring实际生效的日志级别(回显入参或默认值)
linesstring[]日志行列表(按时间正序,为满足条件的最后 N 行

返回示例

{
"taskId": 1023,
"logLevel": "ERROR",
"lines": [
"2026-07-28 08:27:40 [ERROR] com.alibaba.datax.core.job.JobContainer - 运行失败,错误原因:",
"2026-07-28 08:27:40 [ERROR] com.alibaba.datax.common.exception.DataXException: Code:[DBUtilErrorCode-10], Description:[连接数据库失败]. - java.sql.SQLException: Access denied for user 'sync'@'10.1.1.5'"
]
}

错误返回

情况表现
taskId 为空MCP 层 isError: true,内容为参数错误描述文本
日志文件不存在MCP 层 isError: true,内容类似 日志文件不存在: <绝对路径>/full-<taskId>.log
服务端内部异常MCP 层 isError: true,内容为通用错误提示文本

注意点

  1. 日志来源:读取的是 TIS 服务端装配任务目录下的日志文件 full-<taskId>.log。任务日志被清理或任务极旧时会出现「日志文件不存在」。
  2. 过滤方式是子串匹配ERROR / WARN 级别按「行内包含该级别关键字」过滤,多行堆栈中不含关键字的续行会被过滤掉。需要完整堆栈时请使用 logLevel: "ALL"
  3. 返回的是尾部窗口limit 控制返回最后 N 行匹配日志。错误发生在日志中段时,建议增大 limit 或使用 ALL 级别获取上下文。
  4. logLevel 不区分大小写,但仅接受 ALL / ERROR / WARN 三个枚举值。

典型用法

在 Hermes 中的提问示例:

mysql2doris_orders 昨天那次失败的同步,把错误日志给我看一下
使用 get_task_log 工具:taskId=1023,logLevel=ERROR,limit=100