2012-04-11 21 views
6

Czy istnieje sposób przekazania informacji o zbieraniu śmieci (na przykład dane wyjściowe z -XX:+PrintGCDetails lub -verbose:gc) do programu rejestrującego w aplikacji Java (sl4j + logback w moim przypadku)?Rejestrowanie informacji GC w aplikacji

Odpowiedz

3

Interesującym rozwiązaniem byłoby przekierować gc.log do nazwanego potoku -Xloggc:/my/named/pipe How to write GC log to named pipe

następnie odczytać tworzą że rura samej aplikacji : How to open a Windows named pipe from Java?

i zaloguj się do dowolnego użytkownika (np. asynchronizacja) logger logback z kodu.

Próbowałem tego na komputerze z systemem Windows. Niestety konfiguracja na Windowsie jest trudniejsza niż w Linuksie.

W systemie Windows działa zasadniczo za pomocą dodatkowego Powershell script (może to być również dedykowana aplikacja). Ta sample project zawiera również aplikację demonstracyjną, która może być od razu wykorzystana do przetestowania przekierowania logów GC do Logback za pośrednictwem SLF4J.

Powiązane problemy