jdk9+ jvm之gc日志配置

2022-11-28  本文已影响0人  饱饱想要灵感

可直接使用的例子:

-Xms2G -Xmx2G -Xlog:gc*=info,gc+heap=debug,gc+age=trace,safepoint:/logs/gc_%t.log:time,level,tags:filecount=``5``,filesize=20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/logs/
参数 解释
-Xms 初始 Java 堆大小
-Xmx 最大 Java 堆大小
-XX:+HeapDumpOnOutOfMemoryError 堆内存溢出错误打印
-XX:HeapDumpPath 堆内存溢出错误日志路径

-Xlog日志格式
-Xlog:${what}:${output}:${decorators}:${output-options}

如不配置, 则使用以下默认配置
-Xlog:all=warning:stdout:uptime,level,tags

格式说明:

占位符之间用英文冒号分隔, 占位符之内用英文逗号分隔

占位符 解释
${what} 包含标签还有日志级别, 英文逗号分隔
例子1: -Xlog:gc*=info 表示包含 gc 标签的所有日志,info 级别的都会输出
例子2: -Xlog:gc+age=debug 表示同时包含且仅包含 gc 和 age 这两个标签的,debug 级别的都会输出
${output} 输出类型, 英文逗号分隔
例如: -Xlog:gc*:filename 或者 -Xlog:gc*:file=filename 表示将gc标签的日志输出到指定文件
${decorators} 日志标记, 英文逗号分隔
例如: time,level,tags
${output-options} 输出配置, 英文逗号分隔
例如:filecount=5,filesize=20M 表示保留5个文件,每个文件20M

日志级别表

级别 解释
off 关闭
trace 包含trace,debug,info,warning,error所有日志
debug 包含debug,info,warning,error
info 默认级别,包含info,warning,error, 例如-Xlog:gc和-Xlog:gc=info是等价的
warning 包含warning,error
error 仅包含error

输出类型表

输出类型 解释
stdout 标准输出
stderr 标准错误输出
file=filename 输出到文件

日志标记表

标记 解释
time 或者 t 当前时间,ISO-8601格式
utctime 或者 utc UTC时间
uptime 或者 u 启动到现在经过的时间
uptimemillis 或者 um 启动到现在的毫秒时间
uptimenanos 或者 un 启动到现在的纳秒时间
hostname 或者 hn 主机名称
pid 或者 p 进程号
tid 或者 ti 线程号
level 或者 l 日志级别
tags 或者 tg 日志标签

说明:

原先的-XX:+PrintGC -XX:+PrintGCDetails 等配置项在JDK9之后已失效, 详细查看以下官网地址

https://docs.oracle.com/en/java/java-components/enterprise-performance-pack/epp-user-guide/printing-jvm-information.html

附录:

  1. jvm参数官网地址

https://docs.oracle.com/en/java/javase/11/jrockit-hotspot/logging.html#GUID-33074D03-B4F3-4D16-B9B6-8B0076661AAF

  1. jvm参数配置例子

https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/tutorial-Xlog/html/index.html

日志效果实例


gc日志.png
上一篇下一篇

猜你喜欢

热点阅读