2008-09-25 10 views
17

Mam kilka webapps, które używają java.util.logging. Tomcat 5.5 jest skonfigurowany do używania rejestratora Juli, dzięki czemu każda aplikacja internetowa ma swój własny plik dziennika. Problem polega na tym, że Juli nie ma właściwości maksymalnego rozmiaru pliku i liczby plików. Przy użyciu Juli pliki będą się powiększać i będą się wyświetlać tylko pod koniec dnia. Ponadto zachowana jest nieograniczona liczba plików dziennika.Jak skonfigurować logi Tomcat JULI do przechwytywania plików dziennika?

Widać właściwości FileHandler na tej stronie - Apache Tomcat 5.5 Documentation
Nie ma limitu lub liczyć własność (Następujące linie zrobić nic)
org.apache.juli.FileHandler.limit=102400
org.apache.juli.FileHandler.count=5

Bez zmiany webapps czy istnieje sposób, aby uzyskać unikalne pliki dziennika dla każdej aplikacji z pewnego rodzaju granicami rozmiarów plików dziennika?

AKTUALIZACJA: Rozwiązaniem, które znalazłem, nie było w ogóle używanie rejestratora Juli! java.util.logging.FileHandler.limit=102400
java.util.logging.FileHandler.count=5

Dzięki

Greg

Odpowiedz

3

Aktualizacja: widzę swój punkt teraz po przeczytaniu więcej. "Implementacja JULI Tomcata nie ma być w pełni funkcjonalną biblioteką logarytmiczną, a jedynie prostym pomostem do tych bibliotek, jednak JULI zapewnia kilka właściwości do konfiguracji jego obsługi." Zabawne, że twierdzą, że domyślna implementacja java.util.Logging jest zbyt ograniczona, a następnie obejść ją, zapewniając jeszcze bardziej ograniczoną implementację.

FileHandler javadocs

  • java.util.logging.FileHandler.limit określa przybliżoną maksymalną kwotę do pisania (w bajtach) do każdej jednym pliku. Jeśli jest to zero, to nie ma limitu. (Domyślnie brak limitu).
  • java.util.logging.FileHandler.count określa liczbę plików wyjściowych do przełączenia (domyślnie 1).

dla jednego pliku na aplikację internetową, prawdopodobnie chcesz go oddzielić od nazwy rejestratora i zależy to od tego, jak rejestratory są tworzone dla każdej aplikacji. Jeśli są one oparte na nazwie pakietu lub klasy, możesz filtrować logi na podstawie tego. Wygląda na to próbki na link podałeś opowiada, jak to zrobić

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = \ 
    2localhost.org.apache.juli.FileHandler 
3

EDIT: Właśnie sobie sprawę, chciał za rejestrowanie webapp, który może nie być możliwe w tej konfiguracji ...

Moja sugestia, zakładając, że korzystasz z Tomcat 6.0, polega na skompilowaniu dodatkowego komponentu do pełnego logowania commons i użycia Log4j do skonfigurowania dzienników toczenia.

instrukcje budowlane tutaj http://tomcat.apache.org/tomcat-6.0-doc/building.html

następnie wymień tomcat-juli.jar w katalogu/bin Tomcat i umieścić tomcat-Lipiec-adapters.jar w katalogu/lib wraz z log4j.jar i log4j .nieruchomości.

Następnie używając coś takiego:

<appender name="file" class="org.apache.log4j.RollingFileAppender"> 
    <param name="File" value="logfile.log"/> 
    <param name="Threshold" value="INFO"/> 
    <param name="MaxFileSize" value="10MB"/> 
    <param name="MaxBackupIndex" value="3"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
    <param name="ConversionPattern" value="%d{ISO8601} %p %m%n"/> 
    </layout> 
</appender> 
Powiązane problemy