2010-06-04 16 views
18

plik Chciałbym moją aplikację internetową, aby zalogować się do plików z tej ścieżki: webapp/logs/log4j względna ścieżka

mogę ustawić ścieżkę bezwzględną do pliku log4j.properties, ale strukturę katalogów w środowisku produkcyjnym będzie inny. Czy mogę to zrobić?

Oto jak to zrobić:

log4j.appender.f=org.apache.log4j.RollingFileAppender 
log4j.appender.f.layout=org.apache.log4j.PatternLayout 
log4j.appender.f.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
log4j.appender.f.File=log.out 
log4j.appender.f.MaxFileSize=100KB 

to dzienniki drukowania do pliku o nazwie log.log w moim katalogu eclipse (C: // eclipse). Używam Tomcat 6.

+0

tak, przepraszam – Bob

Odpowiedz

34

log4j jest w stanie rozszerzyć właściwości systemu, więc jeśli twoje środowisko produkcyjne ustawia właściwość dla katalogu, w którym chcesz umieścić pliki dziennika, możesz odwoływać się do niego z log4j. plik właściwości.

Na przykład wdrażamy również aplikacje internetowe na serwerze Tomcat. Tomcat ustawia właściwość systemową o nazwie catalina.base, która wskazuje na katalog podstawowy Tomcat. Konfiguracja log4j, który wygląda tak:

log4j.appender.f.File = ${catalina.base}/logs/myapp.log 

spowoduje pliku myapp.log są przechowywane w katalogu dzienników pod Tomcat katalogu instalacyjnym.

+0

dziękuję bardzo! – Bob

+5

Na Debianie (w tym Ubuntu), $ {catalina.home} nie doprowadzi Cię do niczego, ponieważ wskazuje na/usr/share/tomcat6, który nie ma linku do/var/log/tomcat6. Twój plik dziennika nie zostanie utworzony. $ {catalina.base} punktów w/var/lib/tomcat6, który ma link o nazwie logs do/var/log/tomcat6 i jest używany. Mam nadzieję, że to pomaga komuś. –

2

log4j.appender.A1 = org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File = $ {catalina.home} /logs/myapp.log
log4j.appender.A1.DatePattern =” -yyyy-MM-dd'.log '

W tym przykładzie twój bieżący plik dziennika będzie miał nazwę "myapp.log". O północy (lub gdy pierwszy wpis w dzienniku pojawi się następnego dnia) "myapp.log" zmieni nazwę na "myapp-rrrr-mm-dd.log" (na przykład
"myapp-2010-12-21.log ") i zostanie utworzony nowy" myapp.log ".

10

wszelkich starań, aby zapewnić:
log4j.appender.f.File = ./myapp.log

. reprezentuje bieżący folder (zwykle folder główny projektu). Działa to również w różnych systemach operacyjnych. W przypadku użycia $ {catalina.home} może nie być uruchomiona aplikacja internetowa przez kocur.

Ten post pomógł mi przejść przez ten problem:
http://www.matjazcerkvenik.si/Site/Java::Log4j_Properties.html (zaktualizowane łącza http://www.matjazcerkvenik.si/developer/java-log4j.php)

Cheers!

+2

Czy to nie jest już domyślny folder? (tj. poprzedzanie "./" ścieżką nie ma znaczenia) – golimar

Powiązane problemy