2011-11-10 5 views
6

Naprawdę mam dość, że nie jestem w stanie rozwiązać problemu rotacji logów tomcat w jednym z naszych serwerów Windows po tym, jak wrzucam do tego niezliczone godziny i po wypróbowaniu różnych rozwiązań.Jak obracać dzienniki tomcat w systemie Windows? Jaka jest najlepsza metoda?

Środowisko: 1.6x Java, Tomcat 6 (działający jako usługa), log4j 1.2, Server 2003 32-bit

Metody próbowałem tak daleko.

1) cronolog nie działał, brak plików tworzonych po skonfigurowaniu.

2) Zarządzane do konfigurowania log4j z aplikatorem DailyRollingFile globalnie dla tomcat, pliki dziennika są tworzone bez rozszerzenia i nie są obracane.

3) Tried DatedFileAppender też, ale nie odniosło dużego sukcesu.

4) próbował log4jna oparty appender dziennika zdarzeń systemu Windows dla log4j, tam nie uzyskać sukces

proszę sugerować łatwą metodę, aby zakończyć to zadanie.

Odpowiedz

4

Serwer Apache Tomcat udostępnia katalog konfiguracji conf, który zawiera plik server.xml. Na końcu tego pliku, wiersz zawierający zawór regulacyjny, o nazwie AccessLogValve musi zostać usunięty z komentarza i zmieniony.

Domyślne parametry i wzory zaworów można z łatwością zmienić za pomocą edytora w postaci . Ustawienia dla pliku dziennika dostęp na przykład może wyglądać następująco:

<Valve 
className="org.apache.catalina.valves.AccessLogValve." 
directory="logs" 
prefix="mysite." 
suffix=".log" 
pattern='%a %A %b %B %h %l %m %p %q %u %t "%r" %s %U %D %S' 
resolveHosts="false" 
rotatable="true" 
fileDateFormat="yyyy-MM-dd" 
/> 

To zdanie jest z Tomcat reference.

„Parametr fileDateFormat umożliwia dostosowane format daty w nazwie pliku dziennika dostępu do daty Format decyduje również o tym, jak często plik jest obracany. Jeśli chcesz obracać co godzinę, ustaw tę wartość na: rrrr-MM-dd.HH "

+0

Dziękuję za poświęcenie czasu, aby napisać do mnie tak szczegółową odpowiedź. Podchodzisz do problemu z zupełnie innej perspektywy. Nie jestem pewien, czy to rozwiąże mój problem, czy nie. Ale od tej pory udało mi się skonfigurować rotację dzienników za pomocą pliku dziennika dailyrollingfile w log4j –

+1

Dzienniki nadal nie są obracane, nawet po pomyślnym skonfigurowaniu programu wysyłającego dailyrollingfile. Myślę, że log4j nie może zmienić nazwy pliku, gdy jest używany przez Tomcat w systemie Windows. Proszę zasugerować mi inne opcje –

0

Szukałem, jak obracać logi zaworów dostępu. Z dotychczas zebranych danych, "rotacja" po prostu przełączy się na następny plik oparty na ustawionej wartości fileDateFormat.

Dla np. wartość "rrrr-MM-dd.HH" tworzyłby co godzinę nowy plik. Wygląda jednak na to, że pliki będą nadal rosły, chyba że użyjesz zewnętrznego mechanizmu, takiego jak zadanie cron (w systemie Linux), aby je wyczyścić.

1

W końcu rozwiązałem problem po długim odcinku. Tym razem nie dotknąłem konfiguracji dziennika tomcat. Użyłem fantastycznego narzędzia o nazwie logrotatin, które jest reimplementacją logrotate w Windows. Byłem już obeznany z logrotate, więc założenie logrotatin było łatwym zadaniem. Musiałem zatrzymać tomcat w prerun i uruchomić go z powrotem w postrun do rotacji dziennika do pracy, jak tomcat blokuje plik dziennika, gdy jest uruchomiony.

Powiązane problemy