如何设置jvm崩溃日志文件的位置

Posted

技术标签:

【中文标题】如何设置jvm崩溃日志文件的位置【英文标题】:how to set location of jvm crash log files 【发布时间】:2011-12-21 22:54:14 【问题描述】:

我需要配置创建 jvm 崩溃日志的位置。我喜欢它们的名称 (hs_err_pid.log),但我希望它们在特定文件夹中创建。

在here可以看到可以使用

-XX:ErrorFile=./hs_err_pid<pid>.log

param 设置创建的 FILE,但是如果你将它设置为一个文件夹,那么文件是在该文件夹中使用原始命名约定创建的,它不起作用,它被忽略。

我一直在通过从this questions 崩溃 jvm 1.6 来测试这个,使用这个: PathDasher dasher = new PathDasher(null) ;

有人知道实现这一点的方法吗?

【问题讨论】:

***.com/questions/1880166/… 【参考方案1】:

-XX:ErrorFile=/var/log/java/hs_err_pid%p.log 有效。

见http://www.oracle.com/technetwork/java/javase/felog-138657.html

该参数不允许使用环境变量,但您可以在启动器脚本(例如 .sh 或 .bat)中使用环境变量,操作系统会进行替换。但是,这将在启动 JVM 时使用环境变量的值,而不是在以后写入文件时。此外,在 Eclipse 中设置 Run 属性时,环境变量不起作用。

JVM 不会创建保存故障转储的中间目录。如果指定的文件夹不存在,故障转储将保存在默认位置。

【讨论】:

如何通过java运行这样的命令?我通过 cmd 尝试过,但没有成功【参考方案2】:

你必须把它当作

java -XX:ErrorFile=/var/log/java/hs_err_pid%p.log -Xbootclasspath/p:.崩溃

在命令提示符下。 这里,Crash 是我的 java 文件。

【讨论】:

以上是关于如何设置jvm崩溃日志文件的位置的主要内容,如果未能解决你的问题,请参考以下文章

JVM崩溃..如何获取错误日志或核心转储

我可以强制生成 JVM 崩溃日志文件吗?

jvm crash 的崩溃日志详细分析及注意点

怎么查看iphone的崩溃日志

如何修改MySQL日志文件位置

JVM 崩溃日志中的 BufferBlob::Interpreter 是啥意思?