日志点
日志点是一种不会挂起的断点,在被触发时会将调试信息写入控制台。
日志点可帮助完成以下操作:
让调试日志保持整洁并集中,而不是到处插入
println()调用。无需暂停执行便可洞察程序中对时序敏感的部分
调试无法编辑的库或其他代码
从日志条目 导航回产生日志的代码,并获取更多运行时信息,例如日志点被触发时线程的堆栈跟踪
创建日志点
点击任意两行可执行文件之间的装订区域 会出现黄色圆形图标。

输入要日志的表达式 通过此表达式,可捕获此程序点可访问的任意状态。

将现有断点转换为日志点
在装订区域右键单击一个已有断点,然后点击 更多 ,或按下 Ctrl+Shift+F8。
配置 日志选项。
如果希望断点只日志输出且不暂停程序,请取消选择 挂起 复选框 如果希望日志输出并在同一个断点处停下,请保留勾选 挂起。
日志选项
当断点被触发时,可将以下内容记录到控制台:
“断点已触发”消息 :一条类似
Breakpoint reached at ocean.Whale.main(Whale.java:5)的日志消息。堆栈跟踪 :当前帧的堆栈跟踪。 如果您想在不中断程序执行的情况下检查导致此点的路径,这将非常有用。
评估并记录 :任意表达式的结果,例如,
"Initializing"或users.size()。表达式会忽略任何访问修饰符,并在设置断点的行的上下文中进行求值。
表达式的结果取自 return 语句。 当没有 return 语句时,结果取自代码的最后一行,这行代码不必是表达式:文字常量也适用。 这可以用来生成自定义消息或在程序执行时跟踪一些值。
对表达式求值时,请注意其可能产生的副作用,因为这些副作用可能会影响程序的行为和结果。
导航与堆栈跟踪
IntelliJ IDEA的日志点可导航到相应代码,并找出日志点被触发时实际经过的代码路径
点击由 IntelliJ IDEA 日志点产生日志条目,然后选择 打开。 或者,按住 Ctrl 点击。

相应代码将在编辑器中打开, 堆栈跟踪 标签页显示日志点被触发时线程的堆栈跟踪
AI 代理技能
IntelliJ IDEA 自带 ij-debugger 编码代理技能,帮助代理通过日志点收集运行时证据,并在必要时升级为挂起断点、步进或表达式求值。
当代理需要仅靠源代码无法可靠获得的事实,例如运行时值、分支决策、调用顺序、线程上下文或程序是否执行某一行时,该技能很有帮助
该技能记录了与 IntelliJ IDEA 的以下交互:
启动或复用 IntelliJ 调试器会话
发现并执行运行/调试配置
设置日志点
监控调试器事件
检查并控制挂起的会话
跟踪代理拥有和手动设置的断点
启用或禁用技能
该技能默认启用,无需手动启用。 要禁用,请转到 并取消选择 ij-debugger 复选框
该技能可为通过 AI 聊天 启动的代理开箱即用。 对于外部代理,可在设置中安装该技能:
将技能安装到代理
转到 并选择 ij -调试器。
点击靠近 禁用 的箭头按钮,然后选择 安装到 并选择 AI 代理。

使用技能
可以使用代理调用技能的语法显式调用该技能。 也可以由代理决定是否针对特定问题使用。

缩小日志记录范围
由于日志点本质上是带有日志选项的常规断点,因此可以与其他断点属性结合使用。
- 条件
添加条件,仅当布尔表达式计算为
true时才日志输出 断点设置的行必须满足条件。- 通过次数
指定断点仅在被触发一定次数后才会生效。 这对于调试涉及在长时间运行的循环中暂停应用程序或选择性记录频繁事件的场景非常有用。
计数完成后,它会重置并重新开始。 这意味着如果 通过次数 设置为
10,断点将在每第十次被触发时生效。如果同时设置了 通过计数 和 条件 ,IntelliJ IDEA 首先满足条件,然后检查 通过计数。
- 筛选器
使用筛选器将断点限定为特定类、对象实例或调用方法。 当多个入口会进入同一段代码且只需要对某一路径日志输出时十分有用
- 依赖断点
非挂起断点可作为 在命中以下断点之前禁用 中其他断点的触发器。 仅在达到特定代码路径后让后续断点生效时可使用此功能
完整的断点属性列表请参阅 配置断点属性。
日志点图标
非挂起断点使用与常规挂起断点不同的装订区域图标。
行 | 方法 | Field | 异常 | |
|---|---|---|---|---|
非挂起 | ||||
已验证的非挂起 |
管理日志点
日志点在与其他断点相同的 断点 对话框中显示。 在此可以禁用、静音、移除、描述及与其他断点设置分组管理。
如需了解更多信息,请参阅 断点。