【发布时间】:2017-07-04 10:56:45
【问题描述】:
当 JVM 崩溃时,它会生成一个日志文件(默认情况下)保存在应用程序的当前文件夹中,并且其名称遵循以下格式:hs_err_pid[PID].log
我需要让 JVM 将此文件保存在具有所需名称的不同文件夹中。所以,我对虚拟机使用这个命令行参数:
-XX:ErrorFile=./log/jvm_error_pid%p.log
它正在工作,但我不喜欢这个解决方案。假设日志文件夹已经包含一个名为 jvm_error_pid5000.log 的文件。如果将来有 5000 PID 的 JVM 发生崩溃,那么 JVM 不会覆盖日志文件夹中的 jvm_error_pid5000.log 文件,而是将此日志文件保存在完全不同的位置(与我在当前操作系统用户的 TEMP 文件夹中测试)。它甚至不会通过附加随机字符串来重命名新文件以确保唯一性。
我在有关崩溃日志文件的 Oracle 文档页面上没有找到任何有关此唯一性问题的信息。我想知道是否有办法改进该命令行参数,以便它始终生成不同的崩溃日志文件名。例如,我想使用命令行参数将日期和小时放在文件名中:
-XX:ErrorFile=./log/jvm_error_pid%p_%d_%h.log
【问题讨论】:
标签: java jvm jvm-arguments crash-log