GC logs are vital artifacts to troubleshoot memory/CPU related problems and optimize applications performance. In Sep 2017, the much-awaited java 9 got released. In this release, GC logging is re-implemented using Unified GC logging framework (JEP 271). Unified logging framework is a new initiative to introduce a common logging systems for all components of JVM (ompiler, gc, classload, metaspace, svc, jfr, …).

Enable java 9 GC Logs

To enable GC logging in Java 9, a new system property has been introduced. You need to pass this system property during application startup:

-Xlog:gc*:file=<gc-log-file-path>

Example:

-Xlog:gc*:file=/tmp/logs/gc.log

In java 9 release, 43 GC logging flags have been removed. Yes, they are removed, not even deprecated. JVM will not start if old GC flags are passed. Thus, you are forced to replace these flags in Java 9. This table summarizes the old Flags and their equivalents in Java 9.

Tools to analyze

GC log format is completely changed in Java 9. To analyze Java 9 GC logs, it’s highly recommended to use GC log analysis tools like GCeasy, HPJmeter. These tools parse java 9 GC logs and generate great graphical visualizations of the data, reports Key Performance Indicators and several other useful metrics.