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


参考: