JVM - GC日志参数

介绍怎么开启GC日志采集。

Java <= 8

1
2
3
4
5
6
7
8
9
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-Xloggc:/path/to/gc.log
-XX:+UseGCLogFileRotation
-XX:GCLogFileSize=1M
-XX:NumberOfGCLogFiles=5

参考 Java 8文档,后两个参数的文档只能在Java 7文档看到,不过Java 8也能用。

如果你不想要日志滚动,可以这样:

1
2
3
4
5
6
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-Xloggc:/path/to/gc-%t.log

形成的文件会是YYYY-MM-DD_HH-MM-SS(程序启动的时间)这个形式(见这篇Blog)。

Java >= 9

Java 9开始,使用Xlog(文档)统一了所有日志的输出,所以参数要变化:

1
-Xlog:gc*:file=/path/to/gc.log:time,level,tags:filecount=5,filesize=5M

如果你不想要日志滚动,可以这样:

1
-Xlog:gc*:file=/path/to/gc-%t.log:time,level,tags:filecount=0

版权

评论