GC logs are vital artifacts to troubleshoot memory/CPU related problems and optimize applications performance. In Sep 2017, the much-awaited Java 9 was released and GC logging was re-implemented using the Unified GC logging framework (JEP 271).
The Unified logging framework is a new initiative to introduce a common logging systems for all components of JVM (compiler, gc, classload, metaspace, svc, jfr, etc.)
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=
Example:
-Xlog:gc*:file=/tmp/logs/gc.log
In the Java 9 release, 43 GC logging flags were 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.
Analysis Tools
The GC log format was completely changed in Java 9. To analyze Java 9 GC logs, it is highly recommended that you use GC log analysis tools such as GCeasy or HPJmeter. These tools parse Java 9 GC logs and generate great graphical visualizations of the data, as well as reports on key performance indicators and several other useful metrics.