Java 9新特性 - (4)统一的JVM日志系统
Java 9新增了新的命令行选项-Xlog
, 用于所有日志记录设置和统一的JVM日志记录
Xlog的参数遵循以下规则:
- 已按照在命令行中显示的顺序应用了多个参数。
- 最后的配置规则:对于相同的输出,多个参数可以按给定的顺序相互覆盖。
1-Xlog[:option]
2 option := [<what>][:[<output>][:[<decorators>][:<output-options>]]]
3 'help'
4 'disable'
5 what := <selector>[,...]
6 selector := <tag-set>[*][=<level>]
7 tag-set := <tag>[+...]
8 'all'
9 tag := name of tag
10 level := trace
11 debug
12 info
13 warning
14 error
15 output := 'stderr'
16 'stdout'
17 [file=]<filename>
18 decorators := <decorator>[,...]
19 'none'
20 decorator := time
21 uptime
22 timemillis
23 uptimemillis
24 timenanos
25 uptimenanos
26 pid
27 tid
28 level
29 tags
30 output-options := <output_option>[,...]
31 output-option := filecount=<file count>
32 filesize=<file size in kb>
33 parameter=values
下面的例子中,tag为gc,level为trace,rotate文件数为5,每个文件1M,文件名为gctrace.txt,decrotators为uptimemillis和pid
1-Xlog:gc=trace:file=gctrace.txt:uptimemillis,pid:filecount=5,filesize=1024
得到输出
1[1110ms][1867] GC(2) Pause Remark 17M->17M(256M) 2.024ms
2[1110ms][1867] GC(2) Finalize Live Data 0.000ms
3[1110ms][1867] GC(2) Pause Cleanup 17M->17M(256M) 0.177ms
4[1112ms][1867] GC(2) Concurrent Cycle 7.470ms
5[2951ms][1867] GC(3) Pause Initial Mark (Metadata GC Threshold) 149M->30M(256M) 27.175ms
6[2951ms][1867] GC(4) Concurrent Cycle
7[2972ms][1867] GC(4) Pause Remark 32M->32M(256M) 5.132ms
8[2974ms][1867] GC(4) Finalize Live Data 0.000ms
9[2974ms][1867] GC(4) Pause Cleanup 32M->32M(256M) 0.214ms
10[2976ms][1867] GC(4) Concurrent Cycle 25.422ms
旧版GC相关参数迁移,可以参考 https://docs.oracle.com/javase/9/tools/java.htm#JSWOR624
参考: