mkyong ejemplo configurar log4j temporary-files

log4j - ejemplo - Inicio de sesión en el directorio temporal de forma cruzada



log4j2 ejemplo (2)

Tengo una aplicación para la cual log4j logging 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 a usar un archivo de configuración XML?


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


A partir de Log4J v1.2.14, pude usar esto tanto en un archivo log4j.xml como en 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