什么是默认的jvm错误日志位置?

时间:2012-12-31 13:39:52

标签: java

如果在执行java -cp ../blah someplace/somejar.jar时未指定错误日志位置,jvm错误日志将写入哪里?

2 个答案:

答案 0 :(得分:8)

“jvm错误”是什么意思?如果您引用堆栈跟踪,则会将这些写入System.err,从而导致standard error stream。这通常打印在您的终端中,就像System.out一样。如果需要,可以在调用JVM(使用2> /my/file.log)时或通过重定向System.err在代码中重定向。

某些日志记录框架会重定向std-error,然后这取决于您的配置。

如果您引用JVM崩溃日志(如果JVM崩溃而创建,如果您不使用JNI则不会发生,但事实上它们有时会发生),情况就不同了。这些通常是在启动jvm的文件夹中创建的。如果此文件夹不可写,则在Unix系统上使用/tmp目录。

答案 1 :(得分:2)

根据Java Platform, Standard Edition Troubleshooting Guide: Location of Fatal Error Log,如果未指定-XX:ErrorFile=file标志,系统会尝试在进程的工作目录中创建文件

如果无法在工作目录中创建文件(空间不足,权限问题或其他问题),则会在操作系统的临时目录中创建该文件。

  • Oracle Solaris Linux 操作系统上,临时目录为/tmp

  • Windows 上,临时目录由TMP环境变量的值指定;如果未定义该环境变量,则使用TEMP环境变量的值。