反馈已提交

网络繁忙

定时任务运行日志介绍

  • 文档创建者:Wendy123456
  • 历史版本:27
  • 最近更新:Naya 于 2025-08-20
  • 1. 概述

    1.1 版本

    FineDataLink 版本功能变动
    1.9

    日志新增:写入数据行数、更新数据行数

    3.4

    显示的具体日志中,将「中止」改为「终止」

    4.0.1任务运行日志优化,提供更准确的日志信息,降低用户排查问题的成本
    4.1.1

    4.1.1 及之后版本,支持调整业务日志输出级别,因此日志内容也做了优化:

    • 增加:实例等待运行日志的打印

    • 增加:INFO级别,打印更加详细的日志,包括参数值、执行脚本、API请求、API分页取数

    • 优化:明确各条日志的等级,将日志级别打印到日志中

    • 读数类节点,统一增加删除数据的统计

    4.2.9.1

    日志中:

    • 打印集群节点

    • 打印启动前动作时间

    • 打印「SAP输入API输入的信息和响应时长

    • 打印 Kettle 调用结果

    • 打印脚本连接信息

    • 打印版本号

    • 打印选表时用的 SQL

    • 打印排查信息

    1.2 功能简介

    定时任务运行后,将会产生运行日志,便于用户查看任务运行情况。如下图所示:

    56.png

    本文介绍在「日志」这个 Tab 页下,具体显示内容。

    1.3 注意事项

    一个定时任务中有多个流程,在执行后如果有一个流程执行失败,其他流程执行成功的话,整个定时任务的状态是失败的,但是其中的部分流程是执行成功的。

    58.png

    2. 用户需知

    1)4.1.1 及之后版本,支持调整业务日志输出级别,因此日志内容也做了优化:

    • 增加:实例等待运行日志的打印。

    • 增加:INFO级别,打印更加详细的日志,包括参数值、执行脚本、API请求、API分页取数

    • 优化:明确各条日志的等级,将日志级别打印到日志中。

    • 读数类节点,统一增加删除数据的统计。

    2)设置日志级别后(任务级别日志配置全局日志配置),打印的日志说明如下表所示:

    设置的日志级别
    打印的日志级别

    INFO级别

    BASIC INFO

    ERROR

    WARN

    INFO

    WARN级别

    BASIC INFO

    ERROR

    WARN

    ERROR级别

    BASIC INFO

    ERROR

    3. 示例

    定时任务的日志均采用下面的格式:

    yyyy-mm-dd hh:mm:ss 任务状态\节点状态

    [日志等级] 日志内容

    [日志等级] 日志内容

    yyyy-mm-dd hh:mm:ss 任务状态\节点状态

    [日志等级] 日志内容

    [日志等级] 日志内容

    运行总览:执行成功 x,执行失败 y,终止执行 z,跳过执行 w

    执行完毕,总计耗时:nms

    3.1 基础日志打印

    基础日志展示的内容为任务运行/节点执行的状态,不受任务日志级别控制,不管哪个日志级别,都需要进行打印。

    各级别的日志,都是套在基础日志的框架里的,比如 ERROR 级别的日志,是对应失败状态的日志补充。

    3.1.1 常规基础日志打印

    状态
    打印日志说明
    实例开始构建yyyy-mm-dd hh:min:ss 实例开始构建
    实例构建结果

    yyyy-mm-dd hh:min:ss 实例构建成功

    yyyy-mm-dd hh:min:ss 实例构建失败

    日志互斥,只能出现其中一条
    实例等待运行
    yyyy-mm-dd hh:min:ss 实例正在排队
    实例开始运行yyyy-mm-dd hh:min:ss 实例开始运行
    节点开始执行

    yyyy-mm-dd hh:min:ss 开始执行:【节点Name】

    yyyy-mm-dd hh:min:ss 跳过执行:【节点Name】

    日志互斥,只能出现其中一条
    节点执行结果

    yyyy-mm-dd hh:min:ss 执行成功:【节点Name】

    yyyy-mm-dd hh:min:ss 执行失败:【节点Name】

    yyyy-mm-dd hh:min:ss 终止执行:【节点Name】

    日志互斥,只能出现其中一条
    实例运行结果

    yyyy-mm-dd hh:min:ss 实例运行成功

    yyyy-mm-dd hh:min:ss 实例运行失败

    yyyy-mm-dd hh:min:ss 实例运行中断


    3.1.2 循环容器基础日志打印

    循环容器 的日志打印是整体逻辑,并非某条日志输出,因此无法定义日志等级。

    对应的基础日志
    日志格式日志示例
    开始执行:【节点Name】

    执行n次循环 (仅展示最近5次循环信息)

    第1次执行:

    yyyy-mm-dd hh:mm:ss  描述

    详情

    第2次执行:

    yyyy-mm-dd hh:mm:ss  描述

    详情

    ......

    第n次执行:

    yyyy-mm-dd hh:mm:ss  描述

    详情

    执行完毕,总计耗时:ns

    2023-08-31 21:26:55 开始执行【循环容器】

    执行20次循环 (仅展示最近5次循环信息)

    第16次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[16]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[16]

    第17次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[17]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[17]

    第18次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[18]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[18]

    第19次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[19]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[19]

    第20次执行:

    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[20]

    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[20]

    执行完毕,总计耗时:5.0s

    3.1.3 失败重试基础日志打印

    失败重试 的日志打印是整体逻辑,并非某条日志输出,因此无法定义日志等级。

    对应的基础日志
    日志格式日志示例
    执行失败:【节点Name】

    重新执行 (仅展示最近5次重试信息)

    第1次重试:

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    详情

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    ......

    第n次重试:

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    详情

    yyyy-mm-dd hh:mm:ss [日志等级] 描述

    详情

    等待第n+1次重试...

    等待首次重试

    59.png

    等待第2次重试:

    60.png

    3.1.4 集群环境下基础日志打印

    对应的基础日志
    日志格式说明日志示例
    实例开始构建yyyy-mm-dd hh:min:ss 实例开始构建  所在节点:节点的项目名称
    2024-04-23 15:51:13 实例开始构建 所在节点:fanruan1
    节点开始执行

    yyyy-mm-dd hh:min:ss 开始执行:【节点Name】所在集群节点:节点的项目名称

    yyyy-mm-dd hh:min:ss 跳过执行:【节点Name】

    日志互斥,只能出现其中一条2024-04-23 15:51:14 开始执行【SQL脚本】所在节点:fanruan1

    4. BASIC INFO 日志

    对应的基础日志
    日志格式日志示例说明
    实例运行中断[BASIC INFO] 任务超时,中断运行

    2023-08-31 19:14:09 实例运行中断

    [BASIC INFO] 任务超时,中断运行


    开始执行:【节点Name】

    [BASIC INFO] 

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 实时读取速度: nB/s, n行/s

    - 实时写入速度: nB/s, n行/s

    - 累计写入行数: n行

    - 累计更新行数: n行

    - 累计删除行数: n行

    - 写入脏数据行数: n行

    正在执行【节点名称】...

    2023-08-31 19:45:26 开始执行【数据同步】

    [BASIC INFO] 

    - 启动时刻:2023-08-3119:45:26

    - 实时读取速度:0B/s,0行/s

    - 实时写入速度:0B/s,0行/s

    - 累计写入行数:0行

    - 累计更新行数:0行

    - 累计删除行数:0行

    - 写入脏数据行数:0行

    正在执行【数据同步】..

    仅在节点执行过程中打印,节点执行完毕时清除此日志

    适用节点:

    • 数据同步

    • 数据转换

    • 参数赋值

    开始执行:【节点Name】

    [BASIC INFO] 

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 实时下载速度:nB/s

    - 实时上传速度:nB/s

    - 上传成功文件数:n个

    正在执行【文件传输】...

    2023-08-31 19:45:26 开始执行【文件传输】

    [BASIC INFO] 

    - 启动时刻:2023-08-3119:45:26

    - 实时下载速度:0B/s

    - 实时上传速度:0B/s

    - 上传成功文件数:0个

    正在执行【文件传输】..

    适用节点:文件传输
    开始执行:【节点Name】

    [BASIC INFO] 

    - SQL条数:x

    - 影响行数:y

    - 总耗时:zs

    2024-04-23 16:36:53 开始执行【SQL脚本】

    [BASIC INFO] 

    - SQL条数:4

    - 影响行数:4

    - 总耗时:0.016s

    2024-04-23 17:17:23 执行成功【SQL脚本】

    1)仅在执行成功后展示(信息由数据库返回给我们)如果未返回数据则显示信息未返回)

    2)总耗时:指建立连接到获取返回数据的总时间,主要是数据库执行SQL的时间

    3)适用节点:SQL脚本

    执行成功:【节点Name】

    [BASIC INFO]

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 结束时刻:yyyy-mm-dd hh:mm:ss

    - 平均流量:nB/s

    - 平均写入速度:n行/s

    - 读取数据行数:n行

    - 写入数据行数:n行

    - 更新数据行数:n行

    - 删除数据行数:n行

    - 写入脏数据行数:n行

    - 耗时:ns

    注:「写入数据行数」为直接写入的数据行数,不同数据库统计时有一定差异;比如有的数据库写入时覆盖写入的数据也会归到「写入数据行数」中

    2023-08-31 20:03:33 节点执行成功【参数赋值】

    [BASIC INFO]

    - 启动时刻:2023-08-31 20:03:32

    - 结束时刻:2023-08-31 20:03:33

    - 平均流量:871B/s

    - 平均写入速度:1行/s

    - 读取数据行数:20行

    - 写入数据行数:1行

    - 更新数据行数:0行

    - 删除数据行数:0行

    - 写入脏数据行数:0行

    - 耗时:1.0s

    适用节点:

    • 数据同步

    • 数据转换

    • 参数赋值

    执行成功:【节点Name】[BASIC INFO]

    - 启动时刻:yyyy-mm-dd hh:mm:ss

    - 结束时刻:yyyy-mm-dd hh:mm:ss

    - 平均流量:nB/s

    - 下载文件个数:n个

    - 上传文件个数:n个

    - 耗时:ns

    2023-08-31 20:03:33 节点执行成功【文件传输】

    [BASIC INFO]

    - 启动时刻:2023-08-31 20:03:32

    - 结束时刻:2023-08-31 20:03:33

    - 平均流量:871B/s

    - 下载文件个数:20个

    - 上传文件个数:1个

    - 耗时:1.0s

    适用节点:

    文件传输

    跳过执行:【节点Name】

    [BASIC INFO] 节点连线条件不满足

     [BASIC INFO] 条件分支条件不满足

    2023-08-31 22:07:48 跳过执行【虚拟节点】

     [BASIC INFO] 条件分支条件不满足


    5. ERROR 日志

    日志级别设置为 ERROR、INFO、WARN 时,日志说明如下:

    对应的基础日志
    日志格式日志示例说明
    实例构建失败

    [ERROR] 异常节点:【节点Name】

    具体错误信息

    ....

    异常节点:【节点Name】

    具体错误信息

    2023-08-31 19:09:44 任务构建失败

    [ERROR] 异常节点:【数据转换】

    [DB表输出]:

        目标表为空

        字段映射表为空

    ALL
    执行失败:【节点Name】[ERROR] [错误对象]:错误标题 - 描述

    2023-08-31 19:19:27 执行失败【数据同步】

    [ERROR] [数据来源]:数据连接异常 - DataBase[FRDemo] get column failed - [SQLITE_ERROR] SQL error or missing database (near "1": syntax error)

    通用错误
    执行失败:【节点Name】

    [ERROR] 脏数据条数检查不通过,限制是[x]条,但实际上捕获了[y]条.

    错误定位:写入目的表[Table_name]时遇到了脏数据,数据无法正常写入,请检查并作出修改.

    异常情况:具体错误信息

    建议排查的目标字段:

        {字段序号:1,字段名:a1,数据类型:INT}

        {字段序号:2,字段名:a2,数据类型:VARCHAR}

    错误记录:

        {字节数:1,字段序号:1,字段值:value1,数据类型:STRING}

        {字节数:1,字段序号:2,字段值:value2,数据类型:STRING}

    2023-08-31 19:19:27 执行失败【数据同步】

    [ERROR] 脏数据条数检查不通过, 限制是[20]条, 但实际上捕获了[700]条

    错误定位: 写入[SALE_BSEG]目的表时遇到了脏数据,数据无法正第写入,请做出检查井修改

    异常情况: ORA-01653:表 BLLODS_TEST.SALE_BSEG 无法通过 8192(在表空间 BI_ODS_TEST 中)扩展

    建议排查的目标字段:

    {字段序号:295, 字段名: PENDAYS, 数据类型: NUMBER}

    {字段序号:333, 字段名: CURRENT_TIMESTAMP, 数据类型:TIMESTAMP}

    错误记录:

    {字节数:3, 字段序号:1, 字段值:"800",数据类型:STRING}

    {字节数:4, 字段序号:2, 字段值:"1001”,数据类型:STRING

    仅在出现脏数据时打印

    仅打印最近一条脏数据,脏数据明细可以在统计里导出或去fanruan.log中查看

    开始执行:【节点Name】

    [ERROR] [错误对象]:错误标题 - 描述

    报错循环及参数:

    第x次执行-参数[para]:xxx

    第y次执行-参数[para]:yyy

    2023-08-31 21:26:55 开始执行【循环容器】
    执行20次循环 (仅展示最近5次循环信息)
    第16次执行:
    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[16]
    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[16]
    第17次执行:
    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[17]
    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[17]
    第18次执行:
    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[18]
    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[18]
    第19次执行:
    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[19]
    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[19]
    第20次执行:
    2023-08-31 21:26:56 [BASIC INFO] 开始执行【SQL脚本1】[20]
    2023-08-31 21:26:56 [BASIC INFO] 执行成功【SQL脚本1】[20]
    [ERROR] [DB表输出2]:
    DB配置异常-The field mapping [ctr_id] on the writer side was not found in the source field
    报错循环及参数:
    第5次执行-参数[para]:5
    第6次执行-参数[para]:6
    执行完毕,总计耗时:5.0s
    2023-08-31 21:26:56 执行失败【循环容器】
    针对循环容器中的报错进行汇总展示,在执行失败之前进行打印

    涉及节点:循环容器

    6. WARN 日志

    日志级别设置为 WARN、INFO 时,日志说明如下:

    对应的基础日志
    日志格式日志示例说明
    执行成功:【节点Name】[WARN] 检查发现[y]条脏数据

    2023-08-31 20:03:33 节点执行成功【参数赋值】

    [BASIC INFO]

    - 启动时刻:2023-08-31 20:03:32

    - 结束时刻:2023-08-31 20:03:33

    - 平均流量:871B/s

    - 平均写入速度:18行/s

    - 读取数据行数:20行

    - 写入数据行数:18行

    - 更新数据行数:0行

    - 删除数据行数:0行

    - 写入脏数据行数:2行

    - 耗时:1.0s

    [WARN] 检查发现[2]条脏数据

    建议排查的目标字段:

        {字段序号:1,字段名:a1,数据类型:INT}

        {字段序号:2,字段名:a2,数据类型:VARCHAR}

    错误记录:

        {字节数:1,字段序号:1,字段值:value1,数据类型:STRING}

        {字节数:1,字段序号:2,字段值:value2,数据类型:STRING}

    适用节点:

    • 数据同步

    • 数据转换


    仅打印最近一条脏数据,脏数据明细可以在统计里导出或去fanruan.log中查看

    开始执行:【节点Name】-[WARN] [数据去向]: 检测到源表[XXX]结构变化

     - 新增字段:COL1

     - 删除字段:COL2

     - 修改字段:COL3,旧类型:varchar(100),新类型:varchar(200)

    适用节点:数据同步
    开始执行:【节点Name】[WARN] [算子名称]:
    语句执行时间过长,请查看
    正在执行语句:TRUNCATE XXX
     

    仅在执行时间超过30s时打印

    适用节点:

    • 数据同步(数据去向)

    • 数据转换(DB表输出)

    7. INFO 日志

    任务日志等级为 INFO 时,打印 INFO 级别的日志。

    对应的基础日志
    日志格式说明
    开始执行:【节点Name】[INFO] [算子Name]: --若不包含算子,则不打印算子Name

    使用参数: 

    - 参数[参数名1]:值1

    - 参数[参数名2]:值2

    • 打印使用的参数名和参数值至日志

    • 除虚拟节点,其他节点均可使用参数

    开始执行:【节点Name】[INFO] [算子Name]: --若不包含算子,则不打印算子Name

    执行脚本:

    「实际执行的命令语句」

    输出信息:--若无内容,则不打印,shell脚本、Bat脚本、Python脚本可能会有输出

    「脚本执行后输出的信息」

    • 展示实际执行的脚本内容

    • 将脚本执行后输出的信息打印出来

    • 涉及到脚本执行的节点

      • 数据同步(SQL取数、选表数据过滤语句、事务输出)

      • 数据转换(SQL取数、选表数据过滤语句、事务输出)

      • 参数赋值(SQL取数、选表数据过滤语句)

      • SQL脚本

      • Shell脚本

      • Bat脚本

      • Python脚本

    • 涉及到脚本执行的算子

      • 数据同步\数据转换\参数赋值:DB表输入(SQL取数、选表数据过滤语句)

      • 数据转换:SparkSQL、Python

    注:以上涉及到的节点和算子中,「选表数据过滤语句」为 4.2.9.1 及之后版本新增内容

    开始执行:【节点Name】

    [INFO] [算子Name]: --若不包含算子,则不打印算子Name

    响应时长:xx 秒

    请求信息:

     - 证书地址:/xx/xx/test.CRT --若未配置自签名证书,则不打印

     - Request:

    POST http://www.fanruan.com/testapi/ 

     - Headers:

    Content-Type: application/json

     - Body:

    {"key":"Im a JSON"}

    服务端响应:

     - HttpStatusCode:200

     - Headers:

    Content-Type: application/json

    • 打印API请求的详细内容至日志

    • 涉及到API请求的节点

      • 数据同步\数据转换\参数赋值:API输入

      • 数据同步\数据转换:API输出

    开始执行:【节点Name】[INFO] 
    调用结果: 
    作业项编号 : 24
    错误 : 0
    读取行 : 0
    写入行 : 0
    输入 : 0
    输出行 : 0
    更新行 : 0
    Lines rejected : 0
    Script exist status : 0
    结果 : true
    涉及节点:kettle调用
    开始执行:【节点Name】

    [INFO] 

    [算子Name]:--若不包含算子,则不打印算子Name

    响应时长:xx 秒

    请求信息:

    打印 SAP 请求的详细内容至日志

    • 涉及到的节点:

    • 数据同步

    • 数据转换

    • 参数赋值:SAP输入

    8. 排查信息日志

    针对排查问题的场景,为了提升排查效率,新增「Job」信息,排查信息以节点为单位,内容范围是固定节点定位后端日志的信息。

    对应的基础日志
    日志格式日志示例备注
    开始执行:【节点Name】Job[xxx]Job[12]

    定义:这里的Job[xx]不是任务配置的JobId,而是调度赋予这个节点的一个编号,在工程不重启的情况下,一个节点每次运行都使用同一个编号。目前 日志 中不会记录 Job 信息,仅在 画布节点中的 Tooltip 进行展示

    适用节点:

    • 数据同步

    • 数据转换

    • 参数赋值


    附件列表


    主题: 运维中心
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持