Java日志(1):idea的debug技巧
目录
一、Debug模式下,在不重启的前提下使代码生效
二、进阶设置
三、局限
四、通过idea恢复过去版本的代码
五、远程调试
1、RemoteDebug(远程调试)
2、远程JVM参数设置
3、debug条件过滤
4、获取ip和port
一、Debug模式下,在不重启的前提下使代码生效
1、首先将Reload classes after compilation 模式设置为 Always。
2、通过debug启动项目后,当修改了代码后,依次点击Run--》Debugging actions--》Reload Changed Classes,即可在不重启的情况下使代码生效,提升开发效率。
最后会提示有几个类被重新加载了,如果只有0个类,说明你改动的地方并没有影响到程序的运行。
二、进阶设置
为 Reload Changed Classes 设置一个快捷键
步骤如下
三、局限
只能修改已有方法的方法体
不能添加新成员/删除已有成员/修改已有成员的签名(signature)
四、通过idea恢复过去版本的代码
VCS ==》Local History ==》Show History ==》revert,适合于恢复没有成功commit的代码
五、远程调试
1、RemoteDebug(远程调试)
远程调试,就是我们把打包后的代码部署到服务器上之后,使用本地开发环境连接到服务器部署环境,以这样的方式调试。
2、远程JVM参数设置
RemoteDebug过程是在两个不同的VM实例间进行,需要一个通信方式——socket,因此需要端口设置。
要让远程服务器运行的代码支持远程调试,则启动的时候必须加上特定的JVM参数:
-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,server=y,address=${debug_port} ,其中${debug_port}是用户自定义的,为服务端debug端口。
ones-service中端口号8080,具体设置在启动脚本ones-service/deploy/run.sh中,
JVM_ARGS
Java
JVM_ARGS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8418,suspend=n "
参数说明:
-XDebug 启用调试
-Xrunjdwp 加载JDWP的JPDA参考执行实例。
transport 用于在调试程序和 VM 使用的进程之间通讯。
dt_socket 套接字传输。
server=y/n VM是否需要作为调试服务器执行。
address=8080调试服务器监听的端口号。
suspend=y/n 是否在调试客户端建立连接之后启动 VM 。
3、debug条件过滤
在断点处,右键(两指),在条件框中输入匹配条件
适用场景举例:1)想打断点但怕影响其他人使用,条件可以输入匹配自己测试的userId;2)循环次数太多,只想断某一次循环内处理逻辑,其他循环都不断,例如在线活动list循环,条件可以输入活动ID
注意:如果条件不满足,则断点不生效;尽量在请求进入服务前设置好条件,临时设置有时不生效
4、获取ip和port
命令:ps -ef | grep java
参考:在Intellij IDEA中使用Debug - bojiangzhou - 博客园
好文:https://segmentfault.com/a/1190000039187075
Java日志(1):idea的debug技巧相关推荐
- # Idea 调试 Debug 技巧
Idea 调试 Debug 技巧 IDEA 为我们提供了很多简单且非常强大的调试功能 在需要调试的行打上断点,debugger 方式启动Idea 控制台如下 调试功能说明 Show Execution ...
- linux 内核调试信息在哪里,Linux kernel debug技巧----开启DEBUG选项
Linux kernel debug技巧----开启DEBUG选项 作者:wowo 发布于:2016-11-1 19:39 分类:Linux应用技巧 kernel的source code中有很多使用p ...
- 最牛逼的 Java 日志框架,性能无敌,横扫所有对手.....
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:juejin.cn/post/6945753017878577165 Logback 算是JAVA 里一个老牌的日志框架,从0 ...
- 各种Java日志框架的比较
2019独角兽企业重金招聘Python工程师标准>>> Log4j Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件. ...
- Java日志框架Slf4j+Log4j入门
一.日志系统介绍 slf4j,即简单日志门面(Simple Logging Facade for Java),不是具体的日志解决方案,它只服务于各种各样的日志系统.简答的讲就是slf4j是一系列的日志 ...
- Java日志性能那些事
在任何系统中,日志都是非常重要的组成部分,它是反映系统运行情况的重要依据,也是排查问题时的必要线索.绝大多数人都认可日志的重要性,但是又有多少人仔细想过该怎么打日志,日志对性能的影响究竟有多大呢?今天 ...
- 循序渐进看Java web日志跟踪(2)-Java日志API认识
接触过Java的朋友应该都会知道,java的开源框架百花齐放,实现同样的功能,总能找到几个强大的开源框架来进行选择.在日志方面,Java同样不逊色.除了JDK本身自带的简单的日志工具,java还有如l ...
- java单词按字典排序_最终Java日志字典:开发人员最常记录的单词是什么?
java单词按字典排序 最终的记录字典,或者:我们记录的最常见单词是什么? 日志文件是调试应用程序的最常用方法,当解决错误时,它们肯定可以引导我们朝正确的方向发展. 但是,大多数日志文件每天都会增加一 ...
- 终极Java日志字典:开发人员最常记录的单词是什么?
最终的记录字典,或者:我们记录的最常用单词是什么? 日志文件是调试应用程序的最常用方法,在解决错误时,它们一定可以引导我们朝着正确的方向发展. 但是,大多数日志文件每天都会增加一百万条消息,因此,请务 ...
- Java日志操作总结
Java日志操作总结 (2008-04-21 17:39:06) 标签: 杂谈 . 使用Jakarta Commons Logging(JCL) 1.1. 概述 Apache的开源日志组件Jak ...
最新文章
- POJ 1789 Truck History
- Protobuf序列化的原理-存储格式
- 构建高性能.NET应用之配置高可用IIS服务器-第二篇 IIS请求处理模型
- 程序员为什么老得快_这段 Python 代码让程序员赚 300W,公司已确认!网友:神操作!...
- 大数据学习笔记11:搭建完全分布式Hadoop
- spring 锁_分布式锁-快速实战
- Convert Sorted List to Binary Search Tree ------C++ 递归创建平衡二叉查找树
- 【机器学习】xgboost以及lightgbm资料汇总
- jmeter使用_jmeter概念及使用
- (3)I/O流对象-----复制图片/文件/视频的几种I/O流方式
- 云开发打工人必备上班摸鱼划水微信小程序源码
- t470换屏线_thinkpad t470怎么样?thinkpad t470拆机图解全面评测
- 艾可森 mysql,国足进世界杯有戏!巴西归化球员表决心:中国对我好,我必须努力...
- e4a浏览框本地HTML,E4A浏览器
- python图像算法工程师_图像算法工程师的岗位职责
- io输出pwm且占空比和频率同时可调驱动实现
- MSN天气 城市代码
- 我为什么愿意帮助这样的人
- 移动应用开发——uni-app框架 仿网易云音乐播放器学习心得
- 7-211 正常血压