如何禁用GC日志轮转 避免执行脚本时生成带编号的轮转日志
问题原因
JDK9 及之后版本替换了原有的GC日志体系,采用统一JVM日志框架实现-Xlog参数能力,该框架默认对输出到文件的日志开启自动轮转:
- 如果你指定的目标日志文件在JVM启动时已经存在,框架会自动把旧文件重命名为
原文件名.数字序号的格式,也就是你遇到的PrintGC.log.X文件 - 运行过程中日志文件达到默认大小阈值时,也会触发同样的轮转切分逻辑
解决方法
在-Xlog的输出选项中追加filecount=0配置,就能彻底关闭GC日志的所有自动轮转行为,所有GC日志会固定写入你指定的文件,不会再生成带数字后缀的轮转文件。
修改后的正确配置:
$JVM_MEM_OPTS \ -Xlog:gc:file="$CARBON_HOME/repository/logs/printGC.log":time,filecount=0 \
补充说明
- 该配置对所有使用统一日志框架的JDK版本生效,覆盖JDK9到最新的JDK21等全部正式版本
- 配置
filecount=0后,JVM不会在启动时重命名已存在的旧日志,会直接在文件末尾追加新日志。如果你需要每次启动都生成全新的空日志文件,只需要在脚本启动JVM前,手动加一行清空/删除目标日志文件的命令即可。
内容的提问来源于stack exchange,提问作者Prabhashi
相关产品推荐
相关产品推荐

