HotSpot所有功能的日志都在“-Xlog”这个参数上,命令行最关键的参数是选择器,它由标签(Tag)和日志级别(Level)共同组成。
标签可理解为虚拟机中某个功能模块的名字,希望得到虚拟机哪些功能的日志输出。
日志级别从低到高,共有Trace
,Debug
,Info
,Warning
,Error
,off
六种级别,日志级别决定了输出信息的详细程度,附加在命令行上的信息包括:
- Time:当前日期和时间
- uptime:虚拟机启动到当前经过的时间,以秒为单位。
- timemills:当前时间的毫秒数,相当于获取系统当前时间
- uptimemills:虚拟机启动到现在经过的毫秒数。
- timeanos:当前时间的纳秒数。
- uptimenanos:虚拟机启动到现在经过的纳秒数。
- pid:进程ID
- tid:线程ID
- level:日志级别。
- tags:日志输出的标签集。
一般的日志输出默认是uptime
、level
、tags
这三个。
下面是在JDK9中被废弃的日志相关参数以及在JDK9后使用的-Xlog的代替配置形式。
程序名 | 类别 |
---|---|
G1PrintHeapRegions | Xlog: gc+region=trace |
G1PrintRegionLiveness Info | Xlog: gc+liveness=trace |
G1Summarize Concmark | Xlog: gc+marking=trace |
G1SummarizeRSetStats | Xlog: gc+remset*=trace |
GCLogFileSize, NumberOfGCLogFiles, UseGCLogFileRotation | Xlog: gc*:file::filecount=,filesize=file size in kb> |
PrintAdaptiveSizePolicy | Xlog: gc+ergo*=trace |
PrintClassHistogramAfterFullGC | Xlog: classhisto*=trace |
PrintClassHistogramBeforeFullGC | Xlog: classhisto*=trace |
PrintGCApplicationConcurrentTime | Xlog: safepoint |
PrintGCApplicationStoppedTime | Xlog: safepoint |
PrintGCDateStamps | 使用time修饰器 |
PrintGCTaskTimeStamps | Xlog: gc+task=trace |
PrintGCtimeStamps | 使用 uptime修饰器 |
PrintHeapAtGC | Xlog: gc+heap=debug |
PrintHeapAtGCExtended | Xlog: gc+heap=trace |
PrintJNIGCStalls | Xlog: gc+jni=debug |
PrintOldPLAB | Xlog: gc+plab=trace |
PrintParallelOldGCPhaseTimes | Xlog: gc+phases=trace |
PrintPLAB | Xlog: gc+plab=trace |
PrintPromotionFailure | Xlog: gc+promotion=debug |
PrintReferenceGC | Xlog: gc+ref=debug |
PrintStringDeduplicationStatistics | Xlog: gc+stringdedup |
PrintTaskqueue | Xlog: gc+task+stats=trace |
PrintTenuringDistribution | Xlog: gc+age=trace |
PrintTerminationStats | Xlog: gc+task+stats=debug |
PrintTLAB | Xlog: gc+tlab=trace |
TraceAdaptiveGCBoundary | Xlog: heap+ergo=debug |
TraceDynamicGCThreads | Xlog: gc+task=trace |
TraceMetadataHumongousAllocation | Xlog: gc+metaspace+alloc=debug |
G1TraceConcRefinement | Xlog: gc+refine=debug |
G1TraceEagerReclaimHumongousObjects | Xlog: gc+humongous=debug |
G1TraceStringSymbolTableScrubbing | Xlog: gc+stringtable=trace |