2011-11-04 13 views
14

Necesito configurar dónde se crean los registros de bloqueo de jvm. Me gusta el nombre que tienen (hs_err_pid.log) pero quiero que se creen en una carpeta específica.cómo establecer la ubicación de los archivos de registro de bloqueo de jvm

En here se puede ver que se puede utilizar el parámetro

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

para establecer el archivo creado, pero si lo ajusta en una carpeta, por lo que el archivo se crea en la carpeta con la convención de nombres originales , no funciona, se ignora.

He estado probando esto al bloquear jvm 1.6 desde this questions, usando esto: PathDasher dasher = new PathDasher (null);

¿Alguien sabe una manera de lograr esto?

+0

http://stackoverflow.com/questions/1880166/is-it-possible-to-specify-where-jvms-crash-dumps-go –

Respuesta

18

-XX:ErrorFile=/var/log/java/hs_err_pid%p.log funciona.

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

El parámetro no permite que las variables de entorno, pero se puede utilizar variables de entorno en un script lanzador (por ejemplo, .sh o .bat) y el sistema operativo va a hacer la sustitución. Sin embargo, esto utilizará el valor de la variable de entorno en el momento de iniciar la JVM y no cuando el archivo se escriba más tarde. Además, las variables de entorno no funcionan cuando se configuran las propiedades de ejecución en Eclipse.

La JVM no creará directorios intermedios que salven el volcado de emergencia. El volcado de bloqueo se guardará en la ubicación predeterminada si la carpeta especificada no existe.

+0

¿Cómo ejecutar dicho comando por java? Intenté eso a través de cmd pero no tuve éxito –

1

usted tiene que utilizar esto como

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

en el símbolo del sistema. Aquí, Crash es mi archivo java.

Cuestiones relacionadas