Pregunta

Tengo una aplicación para la cual 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.

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

¿Fue útil?

Solución

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

Otros consejos

A partir de Log4J v1.2.14, pude usar esto tanto en un archivo log4j.xml como en un archivo log4j.properties. Se discutió en la web que las variables no se analizarían en DOMReader, pero lo hacen 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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top