Ten dokument zawiera informacje na temat konfiguracji rotacji logów Aplikacji Czytelnika uruchomionej na serwerze Apache Tomcat; zawarte w nim informacje mają na celu ułatwienie gromadzenia i przeglądania logów działania tej aplikacji. Dokument przeznaczony jest dla administratorów systemu dLibra.

Omówiony w tym dokumencie problem dotyczy instalacji dLibry na serwerach Linuxowych, gdzie zainstalowano Apache Tomcat 5.5 pobrany bezpośrednio ze strony http://tomcat.apache.org/. W sytuacji gdy Apache Tomcat został zainstalowany jako dodatkowy pakiet, przygotowany specjalnie dla konkretnej dystrybucji Linuxa poniższe porady mogą nie mieć zastosowania.

Domyślnie Apache Tomcat 5.5 (skrypt uruchomieniowy startup.sh) przekierowuje wszystkie wypisywane na konsolę (stdout) komunikaty do pliku catalina.out. Rozmiar tego pliku zwiększa się bardzo szybko, bardzo utrudniona to podgląd pliku catalina.out. Jest to niezbędne w razie wystąpienia błędów w działaniu i konieczności zdiagnozowania ich przyczyny.

Rozwiązaniem tego problemu jest zmiana domyślnej konfiguracji logowania Apache Tomcat i Aplikacji Czytelnika systemu dLibra. Konfiguracja mechanizmu logowania Apache Tomcat znajduję się w pliku logging.properties (który znajduję się w katalogu tomcat/conf/), poniżej przedstawiono fragment domyślnej konfiguracje Apache Tomcat, czerwonym kolorem zaznaczono elementy, które należy usunąć.

handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4admin.org.apache.juli.FileHandler, 5host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler

Należy również dokonać zmian w domyślnej konfiguracji Aplikacji Czytelnika, znajdującej się w pliku log4j.properties (znajduje się on w katalogu: dlibra-webapp/WEB-INF). Poniżej przedstawiono fragment konfiguracji, kolorem zielonym zaznaczono nowe wpisy, czerwonym wartości zmienione w stosunku do domyślnego pliku.

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{yyyy.MM.dd HH:mm:ss} [%t] %c{1} %p:%n %m%n

log4j.appender.fileout=org.apache.log4j.RollingFileAppender
log4j.appender.fileout.File=../logs/dlibra.log
log4j.appender.fileout.MaxFileSize=1MB
log4j.appender.fileout.MaxBackupIndex=10
log4j.appender.fileout.layout=org.apache.log4j.PatternLayout
log4j.appender.fileout.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} [%t] %c{1} %p:%n %m%n

log4j.rootLogger = info, fileout

Po ponownym zrestartowaniu Tomcata wszystkie komunikaty, które były dotychczas wypisywane na standardowe wyjście (stdout), będą trafiały do plików w katalogu tomcat/logs:

  • komunikaty Apache Tomcat do plików catalina-.log, localhost-.log,
  • komunikaty Aplikacji Czytelnika będą trafiać do pliku /dlibra.log,

Zawartość pliku dlibra.log po osiągnięciu rozmiaru 1MB zostanie skopiowana do dlibra.log.1. Gdy dlibra.log po raz kolejny przekroczy 1MB, zawartość dlibra.log.1 zostanie skopiowana do dlibra.log.2, a zawartość dlibra.log do dlibra.log.1. Ponieważ parametr MaxBackupIndex ma wartość 10, gdy plik dlibra.log przekroczy dozwolony rozmiar po raz 10-ty, najstarsze wpisy zostaną usunięte (plik dlibra.log.11 nie zostanie stworzony). Wartości parametrów MaxFileSize, MaxBackupIndex, File można zmienić według potrzeb, aby zmiany te zostały uwzględnione należy zrestartować Aplikacje Czytelnika. Parametr File zawiera ścieżkę relatywną, na testowanych instancjach Apache Tomcat podstawą takiej ścieżki jest katalog w którym uruchomiony został skrypt startowy Apache Tomcat (czyli tomcat/bin).