2011-01-05 14 views
5

Jak wyczyścić plik server.log JBoss, gdy JBoss działa? Kiedy próbuję zrobićJak wyczyścić serwer server.log w JBoss?

echo 1 > server.log 

uzyskać wiad błędzie, że plik jest używany przez inny program (JBoss). Czy jest możliwe użycie narzędzia wiersza polecenia (Windows lub linux (Mam CygWin)) lub aplikacji, którą sam mogę napisać, aby wyczyścić ten plik?

P.S. Nie potrzebuję tego pliku, aby mieć 0kb, ale chcę, aby miał on mniej niż 100MB.

Odpowiedz

3

Domyślnie JBoss utrzymuje plik zablokowany, ponieważ zapisuje do niego komunikaty dziennika. Jest zablokowany tak długo, jak działa JBoss i nie znam innego sposobu na jego uwolnienie niż zatrzymanie samego JBoss.

Aby zachować swój rozmiar pod kontrolą, można zmodyfikować konfigurację dziennika, która domyślnie jest ustawiona na <server>/conf˛jboss-log4j.xml. Można określić maksymalny rozmiar pliku dziennika i określić, co należy zrobić po osiągnięciu tego rozmiaru: przenieś do nowego pliku, obcnij istniejący i zacznij go pisać ponownie, itp.

Podstawowy przykład (nie testowane, więc nie ma gwarancji, że to działa prosto, jak to jest):

<appender name="ROLL" class="org.apache.log4j.rolling.RollingFileAppender"> 
      ... 
      <param name="maxFileSize" value="100MB" /> 
      ... 
    </appender> 

Ponadto z parametrem maxBackupIndex można określić liczbę kopii zapasowych plików (domyślnie 1).

1

JBoss blokuje plik tak długo, jak długo trwa rejestracja.

Jeśli włączyłeś konsolę JMX, możesz zatrzymać rejestrowanie, usunąć/zmodyfikować dziennik i ponownie uruchomić usługę rejestrowania.

URL powinien wyglądać mniej więcej tak (dla log4j):

http://jboss.example.com:8080/jmx-console/HtmlAdaptor?action=inspectMBean&name=jboss.system%3Atype%3DLog4jService%2Cservice%3DLogging

testowałem to z JBoss 5.

Roztwór ten powinien być również skrypty.

Jeśli chodzi o problem z rozmiarem pliku logu: Zamiast ręcznie edytować plik dziennika, należy użyć metody konfiguracji.