开启 Flowable 原生的日志调试功能
你想要开启 Flowable 原生的日志调试功能以便查看引擎内部的执行过程、SQL 语句、命令执行等关键信息我会分「核心日志SQL/引擎流程」和「全量日志详细调试」两种场景给出 Spring Boot 项目中最完整的配置方式并说明关键日志类别和调试技巧。一、核心需求响应你需要在 Spring Boot 项目中开启 Flowable 原生日志既能查看自定义 SQL 的执行详情也能排查引擎内部的执行逻辑如命令执行、事务处理、流程解析等以下是分场景的配置方案。二、开启 Flowable 原生日志Spring Boot 配置1. 基础配置开启 Flowable SQL 日志最常用如果仅需调试 Flowable 核心表的 SQL 执行包括你自定义的 XML/原生 SQL只需在application.yml/application.properties中添加 Flowable MyBatis 日志配置YAML 配置推荐flowable: # 开启 Flowable 底层 MyBatis SQL 日志核心 mybatis: configuration: # 打印原生 SQL 语句 参数 执行结果 log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 可选开启 MyBatis 详细日志如参数映射 log-prefix: FLOWABLE-SQL- cache-enabled: false # 关闭缓存便于调试 # 可选Flowable 引擎基础日志非 SQL如流程部署/实例启动 async-executor-activate: false # 测试环境关闭异步执行器日志更清晰 database-schema-update: true # 可选调整日志级别控制 Flowable 核心包的日志输出 logging: level: # Flowable 核心引擎日志DEBUG 级别可看到命令执行、事务等 org.flowable.engine.impl: DEBUG # Flowable MyBatis 底层日志TRACE 级别可看到 SQL 解析 org.flowable.engine.impl.db: TRACE # 关闭无关日志避免干扰 org.springframework: INFO com.zaxxer.hikari: INFO org.flowable.db.mapping.entity: debug org.flowable: info cn.iocoder.yudao.flow.module.flow.mapper: DEBUGProperties 配置# 开启 Flowable MyBatis SQL 日志 flowable.mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl flowable.mybatis.configuration.log-prefixFLOWABLE-SQL- flowable.mybatis.configuration.cache-enabledfalse # 调整 Flowable 核心日志级别 logging.level.org.flowable.engine.implDEBUG logging.level.org.flowable.engine.impl.dbTRACE2. 进阶配置开启 Flowable 全量原生日志深度调试如果需要排查 Flowable 引擎内部的详细逻辑如流程解析、任务创建、事件触发等需配置logging.level覆盖 Flowable 核心包的日志级别logging: level: # Flowable 核心包日志级别 # 引擎核心命令执行、事务、流程实例操作- DEBUG 足够 org.flowable.engine.impl: DEBUG # DB 层SQL 执行、表结构更新- TRACE 可看到 SQL 拼接 org.flowable.engine.impl.db: TRACE # 流程解析BPMN 文件解析、节点初始化 org.flowable.bpmn.parser: DEBUG # 任务管理任务创建/分配/完成 org.flowable.task.service: DEBUG # 历史模块历史数据插入/查询 org.flowable.history.service: DEBUG # 命令执行器executeCommand 执行过程 org.flowable.engine.impl.interceptor: DEBUG # 其他辅助配置 # MyBatis 底层Flowable 依赖 org.apache.ibatis: TRACE # 关闭无关日志 root: INFO org.springframework.web: INFO com.mysql.cj: INFO3. 日志输出示例调试自定义 SQL 时开启后控制台会打印类似以下日志以你自定义的selectCustomTaskList为例FLOWABLE-SQL- Preparing: SELECT ID_ as id, NAME_ as name, ASSIGNEE_ as assignee, PROC_INST_ID_ as procInstId, DATE_FORMAT(CREATE_TIME_, %Y-%m-%d %H:%i:%s) as createTime FROM ACT_RU_TASK WHERE ASSIGNEE_ ? AND SUSPENSION_STATE_ 1 FLOWABLE-SQL- Parameters: zhangsan(String) FLOWABLE-SQL- Total: 2 FLOWABLE-SQL- Row: 1: id123, name审批任务, assigneezhangsan, procInstIdPROC-001, createTime2026-01-07 10:00:00 FLOWABLE-SQL- Row: 2: id456, name审核任务, assigneezhangsan, procInstIdPROC-002, createTime2026-01-07 11:00:00三、关键日志类别说明按需开启日志包路径日志级别输出内容适用场景org.flowable.engine.implDEBUG引擎核心操作命令执行、事务、流程实例排查流程启动/完成、命令执行异常org.flowable.engine.impl.dbTRACESQL 执行、表结构更新、参数映射调试自定义 SQL、排查 SQL 执行错误org.flowable.bpmn.parserDEBUGBPMN 文件解析、节点规则校验排查流程定义解析失败org.flowable.task.serviceDEBUG任务创建、分配、完成、删除排查任务操作异常org.flowable.history.serviceDEBUG历史数据插入、查询、清理排查历史数据未生成/查询不到org.apache.ibatisTRACEMyBatis 底层 SQL 解析、参数绑定深度调试 SQL 执行细节四、调试技巧按需开启日志级别仅调试 SQL只需开启flowable.mybatis.configuration.log-implorg.flowable.engine.impl.dbTRACE调试引擎逻辑开启org.flowable.engine.implDEBUG避免全局TRACE否则日志量过大影响性能且不易定位问题。排查自定义 SQL 执行失败先看 SQL 日志是否打印出你编写的 SQL 语句检查参数是否正确传递Parameters行检查表/字段名是否正确Flowable 核心表字段为ID_/NAME_等注意下划线。日志输出位置默认输出到控制台如需输出到文件添加 Spring 日志文件配置logging: file: name: ./logs/flowable-debug.log # 日志文件路径 pattern: file: %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n # 日志格式五、注意事项生产环境关闭调试完成后需将日志级别调回INFO/WARN避免大量日志影响性能和磁盘空间版本兼容上述配置适用于 Flowable 6.5.x 版本低版本6.4.x 及以下同样适用仅部分日志包路径略有差异冲突处理如果项目中同时配置了 MyBatis 自身的日志业务表Flowable SQL 日志和业务表 SQL 日志会分开打印互不影响。总结调试 Flowable 自定义 SQL优先开启flowable.mybatis.configuration.log-implStdOutImplorg.flowable.engine.impl.dbTRACE可直接看到 SQL 执行详情调试引擎内部逻辑补充开启org.flowable.engine.implDEBUG查看命令执行、事务等流程日志级别按需调整生产环境务必关闭详细日志仅保留 INFO/WARN 级别。