datx 开启debug

在这里插入图片描述

1. datax源码编译

编译

mvn -U clean package assembly:assembly -Dmaven.test.skip=true

2.创建mysql测试表

SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
--  Table structure for `users`
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
--  Records of `users`
-- ----------------------------
BEGIN;
INSERT INTO `users` VALUES ('1', 'ee'), ('2', '333'), ('3', 'ss');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;



CREATE TABLE `users2` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

-- ----------------------------
--  Records of `users2`
-- ----------------------------
BEGIN;
INSERT INTO `users2` VALUES ('1', 'ee'), ('2', '333'), ('3', 'ss');
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;



2. mysql到Mysql测试

保存本地为: /Users/lcc/lcc_datax2.json

{
    "job": {
        "content": [
            {
                "reader": {
                	"name": "mysqlreader",
                    "parameter": {
                    	"username": "root",
                        "password": "541711153",
                         "connection": [
                            {
                                "jdbcUrl": [
                                    "jdbc:mysql://127.0.0.1:3306/lcc"
                                ],
                                "table": [
                                    "users"
                                ]
                            }
                        ],
                        "column": [
                            "id",
                            "name"
                        ]
                    }
                },
                    
                "writer": {
                	"name": "mysqlwriter",
                    "parameter": {
                        "username": "root",
                        "password": "541711153",
                         "connection": [
                            {
                                "jdbcUrl": 
                                    "jdbc:mysql://127.0.0.1:3306/lcc"
                                ,
                                "table": [
                                    "users2"
                                ]
                            }
                        ],
                        "column": [
                            "id",
                            "name"
                        ]
                    }
                }
            }
        ],
        "setting": {
            "errorLimit": {
                "record": 0
            },
            "speed": {
                "channel": 1,
                "dataSpeed": 10485760
            }
        }
    }
}

debug运行程序

lcc@lcc datax$ python /Users/lcc/IdeaProjects/datax/target/datax-v3.2.0/datax/bin/datax.py   /Users/lcc/lcc_datax.json --debug

DataX (DATAX-OPENSOURCE-3.0), From Alibaba !
Copyright (C) 2010-2016, Alibaba Group. All Rights Reserved.


local ip:  Unknown
Listening for transport dt_socket at address: 9999

这里会显示端口

开启远程

在这里插入图片描述

最后点击debug按钮就可以了

<think>好的,用户现在问的是如何在Spring Boot启动时开启debug模式。之前他们遇到了在bootstrap.yml中配置端口但未生效的问题,现在可能需要通过debug来排查配置加载的问题。我需要先回忆一下Spring Boot中如何开启debug的方法。 首先,用户可能已经知道可以通过application.yml设置debug属性,但可能没有正确使用位置或者遇到了其他问题。需要明确说明在application.yml中添加debug: true的位置,比如放在最顶层或者management下?或者是否需要使用特定的属性? 另外,用户可能对不同的配置方式不太清楚,比如命令行参数、环境变量或者JVM参数。需要详细列出不同的方法,包括application.yml、命令行启动、环境变量等,并说明优先级关系,这样用户可以根据实际情况选择。 还要考虑到用户可能对debug输出的内容不熟悉,是否需要解释一下开启后会看到哪些信息,比如自动配置报告、条件报告等,这样他们知道如何利用这些信息解决问题。比如,自动配置报告会显示哪些自动配置类被应用,哪些被排除,这有助于诊断配置问题。 此外,用户之前的问题涉及配置覆盖,可能需要指导他们如何通过debug日志查看配置的加载顺序和来源,比如检查日志中关于配置文件的加载信息,确认bootstrap.yml和application.yml的加载顺序是否正确,以及是否有其他配置源覆盖了端口设置。 还需要注意Spring Boot版本的变化,用户使用的是3.x版本,是否有任何关于debug模式的变化?比如是否管理端点的路径有变化,或者debug属性的位置有调整?需要确保提供的信息适用于3.x版本。 最后,用户可能需要一些实际例子,比如具体的代码片段或命令行参数,这样他们可以直接复制使用。同时,提醒他们关闭debug的方法,避免生产环境误开调试模式。 总结回答的结构:先介绍开启debug的几种方法,包括配置文件、命令行参数、环境变量,然后说明debug日志的内容,如何分析配置加载问题,最后给出相关问题作为延伸。</think>在 Spring Boot 中开启 **Debug 模式**,可以查看详细的自动配置报告、条件报告(Condition Report)和配置加载过程,帮助定位启动问题(如配置冲突、自动配置失败等)。以下是具体方法: --- ### **1. 通过 `application.yml` 开启 Debug** 在 `application.yml` 中添加 `debug: true`: ```yaml # application.yml debug: true ``` - **效果**:输出 **自动配置报告**(列出启用/排除的自动配置类)和 **条件报告**(显示每个自动配置类的生效条件)。 - **适用场景**:本地开发调试,快速定位自动配置问题。 --- ### **2. 通过命令行参数开启 Debug** 启动应用时添加 `--debug` 参数: ```bash java -jar your-app.jar --debug ``` - **优先级**:命令行参数优先级高于 `application.yml`。 - **适用场景**:临时调试,无需修改配置文件。 --- ### **3. 通过环境变量开启 Debug** 设置环境变量 `DEBUG=true`: ```bash # Linux/macOS export DEBUG=true java -jar your-app.jar # Windows set DEBUG=true java -jar your-app.jar ``` - **适用场景**:在服务器或容器中调试,避免修改代码。 --- ### **4. Debug 日志内容解析** 开启 Debug 后,日志会包含以下关键信息: 1. **自动配置报告**(Auto Configuration Report) 列出所有自动配置类及其状态(`matched` 表示生效,`excluded` 表示被排除): ``` ============================= CONDITIONS REPORT ============================= Positive matches: - org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration matched: - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet' Negative matches: - org.springframework.boot.autoconfigure.r2dbc.R2dbcAutoConfiguration: - @ConditionalOnClass did not find required class 'io.r2dbc.spi.ConnectionFactory' ``` 2. **配置加载顺序** 显示 `bootstrap.yml` 和 `application.yml` 的加载顺序及覆盖关系: ``` INFO o.s.c.s.AbstractResourceBasedConfigLoader - Loaded config from application.yml INFO o.s.c.s.AbstractResourceBasedConfigLoader - Loaded config from bootstrap.yml ``` 3. **内嵌容器初始化日志** 显示 Tomcat/Jetty 的端口绑定过程(可用于排查端口冲突): ``` INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8081 (http) ``` --- ### **5. 关闭 Debug 模式** - **移除配置**:删除 `application.yml` 中的 `debug: true`。 - **清除环境变量**:取消设置 `DEBUG=true`。 - **移除命令行参数**:启动时不再添加 `--debug`。 --- ### **6. 常见问题排查** - **问题 1:为什么配置了 `debug: true` 但未输出报告?** - 确保 `application.yml` 位置正确(如 `src/main/resources`)。 - 检查是否被其他配置源(如 Nacos、环境变量)覆盖。 - **问题 2:如何定位端口冲突?** 查看日志中 `Tomcat initialized with port(s):` 或 `Jetty started on port(s):` 的输出,确认实际绑定端口。 - **问题 3:如何查看生效的 `server.port` 来源?** 使用 `/actuator/configprops` 端点(需添加 Actuator 依赖): ```yaml # application.yml management: endpoints: web: exposure: include: "*" ``` 访问 `http://localhost:8080/actuator/configprops` 查看 `server.port` 的配置来源。 --- ### **相关问题**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九师兄

你的鼓励是我做大写作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值