2008-11-24 15 views
11

Ho un'applicazione per la quale log4j logging è configurato in un file log4j.properties. Attualmente, questa applicazione viene eseguita su UNIX e crea un file di registro in/tmp. Questa applicazione deve essere eseguita su Windows, e su quella piattaforma vorrei che selezionasse la directory temporanea corretta, che credo sia C: \ temp.Registrazione nella directory temporanea in modo multipiattaforma

Come posso modificare il file log4j.properties in modo che ciò accada? Devo passare all'utilizzo di un file di configurazione XML?

+0

Mentre scrivevo questa domanda forse ho trovato la risposta. Non ho ancora provato, però, e voterò le persone e accetto una buona risposta per avere la possibilità che qualcun altro voti un rappresentante. Se sento di avere qualcosa da aggiungere, posterò la mia risposta e le persone potranno votare in su o in giù come si sentono. – skiphoppy

risposta

17

Penso che si dovrebbe usare ${java.io.tmpdir} al posto di un percorso hardcoded.

+1

Proprio come una nota a margine, questa variabile funziona anche nel file di configurazione di Logback. – nrobey

0

A partire da Log4J v1.2.14, sono stato in grado di utilizzarlo sia in un file log4j.xml che in un file log4j.properties. C'è stata una discussione sul web che le variabili non sarebbero state analizzate nel DOMReader, ma fanno da questa versione di 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 nel valore del parametro "File" dovrebbe essere interpretata correttamente su un sistema operativo Microsoft, ad esempio una barra rovesciata, o dovrei usare la proprietà separatore di file? –

+0

@ TomislavNakic-Alfirevic quest'ultimo o "\\" – ConquerorsHaki

Problemi correlati