You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Java JFR的StartFlightRecording参数使dump文件名带时间戳

Java Flight Recording 文件名加时间戳实现方案

高版本Java内置方案

Java 16 及更高版本已经原生支持文件名内置时间戳,无需编写额外脚本重命名,支持两种配置方式:

方式1:使用默认时间戳占位符

%t是JFR内置的时间戳占位符,默认格式为YYYY_MM_DD_HH_MM_SS,直接写入filename参数即可,时间戳取dump生成的实时时刻:

# 启动时开启自动dump
java -XX:StartFlightRecording=dumponexit=true,filename=/path/to/recorders/%t_myrecording.jfr
# 手动执行jcmd导出
jcmd <你的Java进程PID> JFR.dump filename=/path/to/recorders/%t_myrecording.jfr

方式2:自定义时间戳格式

如果需要调整时间戳格式,可通过timestamp参数自定义格式规则:

java -XX:StartFlightRecording=dumponexit=true,timestamp=yyyy_MM_dd,filename=/path/to/recorders/${timestamp}_myrecording.jfr

上述配置生成的文件名格式就和你示例中的/path/to/recorders/2021_09_14_myrecording.jfr完全一致。

Java 15及更低版本兼容方案

低版本JDK没有内置时间戳占位符支持,只能通过shell脚本拼接时间实现:

  • 启动进程时开启自动dump,时间取进程启动时刻:
TS=$(date +%Y_%m_%d)
java -XX:StartFlightRecording=dumponexit=true,filename=/path/to/recorders/${TS}_myrecording.jfr
  • 手动执行jcmd导出,时间取dump触发时刻:
TS=$(date +%Y_%m_%d)
jcmd <你的Java进程PID> JFR.dump filename=/path/to/recorders/${TS}_myrecording.jfr

内容的提问来源于stack exchange,提问作者Leo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 16:45:05