可直接使用的例子:
-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
附录:
- jvm参数官网地址
https://docs.oracle.com/en/java/javase/11/jrockit-hotspot/logging.html#GUID-33074D03-B4F3-4D16-B9B6-8B0076661AAF
- jvm参数配置例子
https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/tutorial-Xlog/html/index.html
日志效果实例

© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...
