Log files
Use this page to quickly locate logs and artifacts when troubleshooting or reporting a problem. It lists only paths, formats, and keywords. See the FAQ for steps to diagnose specific problems.
The main Jugg logs are stored under ~/.jugg/log/<projectName>_<pathHash>/. Because the logs are outside the project's build directory, Gradle clean does not remove the diagnostic history. When investigating compilation, deployment, Debug, MCP, or runtime problems, start with compile_latest.log in most cases.
Log paths
| Path | Description |
|---|---|
~/.jugg/log/<projectName>_<pathHash>/compile_latest.log | Best-effort shortcut to the current main log. |
~/.jugg/log/<projectName>_<pathHash>/compile_latest-1.log | Best-effort shortcut to the previous main log. |
~/.jugg/log/<projectName>_<pathHash>/compile_YYYY-MM-DD_HH-mm-ss.0.log | Actual rolling log file. |
build/jugg/log | Best-effort compatibility link to the real log directory. |
build/jugg/mcp_fetch/<toolName>/ | Artifacts generated by MCP fetch tools. |
build/jugg/tmp/diff/ | Remote compilation diff results. |
Android Studio idea.log | Android Studio's own log, used for Debug attach, IDE freeze, plugin loading, and similar problems. |
The directory name combines the project root directory name with an eight-character hash of its absolute path, so projects with the same name at different paths do not share logs. The build/jugg/log compatibility link may be unavailable because of platform permissions and is removed by Gradle clean; the next Jugg Run attempts to restore it. Diagnostic tools and the MCP logPath field always use the real path and do not depend on this link.
compile_latest.log is a shortcut, not the only actual file. If it appears stale, also check the rolling logs and compile_latest-1.log.
Log format
[2026-03-16 16:13:27.109] [INFO ] [ClassName] message| Field | Description |
|---|---|
| Timestamp | Millisecond precision. |
| Level | Runtime level such as FINE, INFO, WARNING, or SEVERE. |
| ClassName | Log source label, which can usually be used as an entry point for locating the source. |
| message | The specific event, duration, error, or status description. |
Common search terms
| Target | Keywords |
|---|---|
| Compilation starts | Jugg compile started |
| Incremental/full decision | preprocessIncrementalCompile |
| No-file-change fallback | No file changes, confirmFallbackWhenNoFileChanges |
| Fallback reason | fallback, Fallback |
| Compilation failure | incremental compile error, SEVERE |
| APK DB initialization | initAfterInstall parsed apk start, database all init finish |
| Deployment starts | deploy start |
| Deployment recovery / retry | recover, retry |
| Debug attach | Jugg Debug attach:, waitForClientReadyForDebug, Connected to the target VM |
| Const-ref | ConstRefEngine, full scan progress |
| UI freeze | uiFreezeStarted, InvocationEvent has timed out |
| MCP log waiting | wait-logs, marker, crash |
MCP log results
wait-logs waits for a log marker, crash, or timeout and returns:
| Field | Description |
|---|---|
stopReason | marker, crash, or timeout. |
startTime / endTime | Times in logcat threadtime format. |
targetPids | Target process PIDs found when waiting stopped. |
logs | Filtered log window, up to 100 lines. |
allLogsPath | Path where the complete raw log is stored. |
truncated | Whether the returned logs were truncated. |
When tools such as layout-dump and activity-stack return file paths, the paths appear in artifacts or data and point into build/jugg/mcp_fetch/.
Troubleshooting recommendations
- Identify the exact time of the user action or error.
- In
compile_latest.log, read a wider window before and after that time. - Use the
[ClassName]label to locate the relevant module. - For Debug attach, IDE freeze, or plugin startup problems, also check Android Studio
idea.log. - For remote compilation problems, check both the full log and
build/jugg/tmp/diff/.