2008-11-24 15 views
11

Mam aplikację, dla której rejestrowanie log4j jest skonfigurowane w pliku log4j.properties. Obecnie ta aplikacja działa w systemie UNIX i tworzy plik dziennika w/tmp. Ta aplikacja musi działać w systemie Windows i na tej platformie chciałbym, aby wybrał właściwy katalog tymczasowy, który moim zdaniem to C: \ temp.Logowanie do katalogu tymczasowego w sposób międzyplatformowy

Jak mogę zmienić swój plik log4j.properties, aby tak się stało? Czy muszę przejść do używania pliku konfiguracyjnego XML?

+0

Pisząc to pytanie I może znaleźć odpowiedź. Jednak nie testowałem jeszcze, a ja będę głosował na ludzi i akceptuję dobrą odpowiedź, aby dać szansę komuś innemu na zdobycie punktów. Jeśli czuję, że mam coś do dodania, opublikuję odpowiedź i ludzie będą mogli głosować w górę lub w dół, jak im się wydaje. – skiphoppy

Odpowiedz

17

Myślę, że po prostu używałbyś ${java.io.tmpdir} zamiast ścieżki o sztywnej ścieżce.

+1

Tak, jak na marginesie, ta zmienna działa również w pliku konfiguracyjnym Logback. – nrobey

0

Od wersji Log4J v1.2.14 mogłem użyć tego zarówno w pliku log4j.xml, jak i w pliku log4j.properties. W Internecie przeprowadzono dyskusję, że zmienne nie będą analizowane w programie DOMReader, ale będą miały tę samą wersję 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> 

lub

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

Czy ukośnik w wartości parametru "Plik" był interpretowany poprawnie w systemie Microsoft OS, tj. Jako odwrócony ukośnik, czy też musiałbym użyć właściwości separatora plików? –

+0

@ TomislavNakic-Alfirevic the last or "\\" – ConquerorsHaki

Powiązane problemy