Filtrowanie zduplikowanych logów

0

Mam taki problem że logowanie exceptionów w przypadku dłuższego czasu awarii np bazy zapycha mi dysk logami.
Używam Logbacka. Pytanie czy jest jakaś implementacja filtra dla logów który będzie działał w taki sposób -> zaloguje max 4 takie same logi w przeciągu 30 sekund. Po upływie tego czasu jeśli dalej leci taki błąd to znowu go zaloguje i 30 sekund przerwy itd.

Próbowałem juz trubofilter DuplicateMessageFilter ale tam niestety jak już raz log trafi do cache to nie zaloguje go ponownie.

0

Może sami je buforujcie po prostu? Czy to aż taki problem napisać sobie appender który zbiera logi w secie (albo w mapie jak chcesz liczyć ile razy coś wystąpiło) i np. flushuje co jakiś czas do pliku czy gdzieś? Albo przed zalogowaniem sprawdza sobie w jakimś secie z wygasajacymi czasowo entries (Guava chyba takie miała).

0

Zasadnicze pytanie to po co w ogóle je logujecie. Skoro tyle ich jest i jeszcze was użytkownicy nie powiesili to znaczy, że to nie są exceptiony godne logowania.

Może powinniście mieć detekcje, że bazy nie ma i kłaść wtedy serwis?

0

Może circuit breaker na bazę?

0

Mamy detekcje ze bazy nie ma wtedy aplikacja sie usypia i czeka bez walenia logami, ale problem jest taki ze zdarzylo sie ze był nagły reset servera i uszkodziło się kilka tabel ale baza stała. Wtedy watek ktory probowal do niej zapisac za kazdym razem dostawał błąd. Aplikacji nie mozemy całkowicie wygasić w takiej sytuacji bo musimy kolejkowac odebrane wyniki z zewnetrznych systemów. Dlatego padł pomysł aby zrobić jakieś filtrowanie w logerze. Z tego co wyczytałem to można dodać swój filtr do Logbacka. W sumie sytuacja dotyczy tez przy braku innych zasobów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1