What is debug logging?
Debug logging is a special, more detailed logging mode that records internal IDE activity to help investigate and reproduce problems that are not visible from regular logs. By default, the IDE writes only messages with the info level and higher to idea.log, which is usually enough for normal work and basic troubleshooting.
When you enable debug logging for specific categories (Java packages), the IDE starts writing additional messages with more fine‑grained levels such as debug, trace, or all, which provide much more context about what is happening inside the IDE (HTTP requests, indexing details, VFS events, UI behavior, etc.). This extra information is what JetBrains Support typically needs when diagnosing complex or rare issues.
Because debug logs may contain internal paths, configuration details, request data, and other sensitive information, they should normally be enabled only when requested by Support (or when you are actively troubleshooting) and turned off again afterwards.
If you don't know what package to use as a category, contact JetBrains Support for assistance via Help | Contact Support.
Question
How to enable debug logging in IntelliJ IDEA?
Answer
-
In the IDE, go to Help | Diagnostic Tools | Debug Log Settings...
-
In the textbox that opens, add required debug instructions (Java package name followed by log level), one per line, and click OK:
Note: no IDE restart is required.
-
Reproduce the issue and collect IDE logs using Help | Show Log in... (idea.log) or Help | Collect Logs and Diagnostic Data (all IDE logs and thread dumps).
Logging levels
-
INFO- normal logging level, records high‑level, important events (e.g., "project opened", "indexing finished", major warnings) -
DEBUG(correlates toFINE) - detailed diagnostic messages about what the IDE is doing (more thanINFOlogs) -
TRACE(correlates toFINER) - extremely fine‑grained, step‑by‑step messages (even more verbose thanDEBUG) -
ALL- logs every message for that category, regardless of level (maximal verbosity)
⚠️ Notes
- Messages with
INFOlevel and higher are written to idea.log by default (so you get them even without enabling debug logging) - If you add only the package name (e.g.,
com.intellij.diagnostic) without a log level, the level defaults toDEBUG - Logging levels need to be specified after the Java package name:
com.intellij.execution:debug - Logging levels are case-insensitive, so both
:traceand:TRACEare OK - Categories (packages) are case-sensitive
- Categories (packages) use Java package naming convention with dots (
.) - In newer IDE versions,
#in front of the package name is optional (example:#com.intellij.util.io.HttpRequests:all)
More details about IntelliJ Platform logging capabilities can be found in this documentation article.
Examples
Common categories for which to enable logging when troubleshooting specific subsystems / scenarios:
HTTP requests and Proxy
com.intellij.util.io.HttpRequests:trace
com.intellij.util.proxy.CommonProxy:trace
com.intellij.util.net:trace
Task server connection
Everything related to Task Management functionality:
com.intellij.tasks:all
httpclient.wire.header:all
SSH
com.intellij.ssh
IJent (IntelliJ Remote Agent)
What is IJent: IJPL-A-166
⚠️ Note: With this option enabled, IDE logs can contain a lot of sensitive information.
com.intellij.platform.ijent
Editor Scrolling
com.intellij.openapi.editor.impl.ScrollingModelImpl:all
Indexing
com.intellij.util.indexing.FileBasedIndexImpl:trace
Git, GitHub, GitHub Copilot
output.git4idea.commands.GitHandler
org.jetbrains.plugins.github
com.github.copilot
File system input/output (I/O)
com.intellij.openapi.util.io.FileSystemUtil:trace
File system watch roots
Details in IJPL-A-1528.
com.intellij.openapi.vfs.WatchRoots:trace
File system refresh
Details in IJPL-A-1528.
com.intellij.openapi.vfs.newvfs.RefreshSession:trace
com.intellij.openapi.vfs.newvfs.RefreshWorker:trace
Terminal (external changes)
Troubleshooting flags when external changes aren't detected until focus moved out of Terminal (IJPL-A-1684):
2026.1:
com.intellij.terminal.frontend.view.impl.TerminalVfsSynchronizer:trace
com.intellij.terminal.frontend.view.impl.TerminalHeuristicsBasedCommandFinishTracker:trace
2026.2 and later versions:
com.intellij.terminal.TerminalVfsSynchronizerKt
com.intellij.terminal.frontend.view.impl.TerminalVfsSynchronizerKt
com.intellij.terminal.frontend.view.impl.TerminalHeuristicsBasedCommandFinishTracker
Keyboard and mouse input events
java.awt.event.InputEvent:all
java.awt.event.EventQueue:all
java.awt.event.EventDispatchThread:all
java.awt.event.Component:all
java.awt.event.Container:all
java.awt.event.LightweightDispatcher:all
java.awt.event.WaitDispatchSupport:all
Size and position of monitors and related events (JBR)
Go to Help | Edit Custom VM Options, add the following as a new line there, then restart the IDE:
-Dsun.java2d.logDisplays=true
Scale and font initialization on IDE startup
com.intellij.ide.ui.laf.LafManagerImpl
Implementation details: IJPL-159968
Size and position of tool windows and detached Editor tabs
Note: for detached Editor tabs, use the last two options.
com.intellij.openapi.wm.impl.ToolWindowManagerImpl
com.intellij.toolWindow.ToolWindowPane
com.intellij.openapi.wm.impl.FloatingDecorator
com.intellij.openapi.ui.FrameWrapper
Size and position of the main IDE window
ide.frame.events
Implementation details: Log IDE frame events related to saving size, location and screen
Size and position of popups
com.intellij.ui.popup.AbstractPopup
com.intellij.codeInsight.hint.HintManager
com.intellij.codeInsight.lookup.impl.LookupUi
Implementation details: IJPL-124033
Position of context menus
com.intellij.openapi.ui.JBPopupMenu
Implementation details: Add logging for context menu positioning
Auto-selection of item in the Project tree
com.intellij.ide.projectView.impl.SelectInProjectViewImpl
com.intellij.ide.impl.SelectInTargetPsiWrapper
com.intellij.ide.projectView.impl.AsyncProjectViewSupport
com.intellij.ui.tree.BgtTreeWalker
com.intellij.ui.tree.AsyncTreeModel:trace
Switcher and Recent Files
Use case example: unexpected files are shown or certain files are missing
com.intellij.platform.recentFiles:all
AI Assistant (LLM)
com.intellij.ml.llm
com.intellij.util.io.HttpRequests:trace
com.intellij.util.proxy.CommonProxy:trace
com.intellij.util.net:trace
Action System
Use case example: some menu does not show up at all, or certain menu items are missing:
com.intellij.openapi.actionSystem.impl.Utils
Undo / Redo actions work incorrectly / greyed out in the menu
com.intellij.openapi.command.impl.StacksHolderBase:all
com.intellij.openapi.command.impl:all
Actions in Remote Development / Code With Me:
com.jetbrains.rdclient.actions.base.FrontendActionUpdateInterceptor
Terminal subsystem / process execution
org.jetbrains.plugins.terminal:trace
com.jediterm.terminal:trace
com.intellij.execution:trace
Plugins download from the marketplace
com.intellij.ide.plugins.marketplace
JCEF
Go to Help | Edit Custom VM Options, add the following as a new line there, then restart the IDE:
-Dide.browser.jcef.log.level=verbose
Java Debugger
See article: Collecting Java debugger logs
IDE scripting console + Groovy console
com.intellij.ide.script
com.intellij.ide.script.RunIdeConsoleAction
com.intellij.ide.script.IdeScriptEngineManagerImpl
org.jetbrains.plugins.groovy
Comments
0 comments
Please sign in to leave a comment.