2008-11-24 14 views
11

Tengo una aplicación para la que el registro log4j está configurado en un archivo log4j.properties. Actualmente, esta aplicación se ejecuta en UNIX y crea un archivo de registro en/tmp. Esta aplicación necesita ejecutarse en Windows, y en esa plataforma me gustaría que seleccione el directorio temporal correcto, que creo que es C: \ temp.Inicio de sesión en el directorio temporal de manera multiplataforma

¿Cómo puedo cambiar mi archivo log4j.properties para que esto suceda? ¿Debo cambiar a usar un archivo de configuración XML?

+0

Mientras escribía esta pregunta que puede haber encontrado la respuesta. No he probado todavía, sin embargo, y voy a votar a la gente y aceptar una buena respuesta para una oportunidad para que alguien más para ganar un poco rep. Si siento que tengo algo que agregar, publicaré mi respuesta y las personas pueden votar hacia arriba o hacia abajo a su gusto. – skiphoppy

Respuesta

17

Creo que simplemente usaría ${java.io.tmpdir} en lugar de una ruta codificada.

+1

Como nota al margen, esta variable también funciona en el archivo de configuración de Logback. ¿Sería – nrobey

0

A partir de Log4J v1.2.14, yo era capaz de utilizar este tanto en un archivo log4j.xml, así como un archivo log4j.properties. Hubo una discusión en la web que las variables no se analizarían en el DOMReader, pero sí a partir de esta versión de log4j.

<appender name="rolling_file_appender_ourapp" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="${user.home}/.mycompany/OurApp.log" /> 
    <param name="Append" value="false" /> 
    <param name="MaxFileSize" value="10MB" /> 
    <param name="MaxBackupIndex" value="3" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d | %-5p | %c | %m | %t | %x %n" /> 
    </layout> 
</appender> 

o

log4j.appender.rfile=org.apache.log4j.FileAppender 
log4j.appender.rfile.layout=org.apache.log4j.PatternLayout 
log4j.appender.rfile.Append=false 
log4j.appender.rfile.layout.ConversionPattern=%d [%p] %c %m%n 
log4j.appender.rfile.File=${user.home}/.mycompany/OurApp.log 
+0

la barra en el valor del parámetro "Archivo" debe entenderse correctamente en un sistema operativo de Microsoft, es decir, como una barra invertida, o qué tengo que utilizar la propiedad separador de archivo? –

+0

@ TomislavNakic-Alfirevic este último o "\\" – ConquerorsHaki

Cuestiones relacionadas