2012-12-19 14 views
13

Mam aplikację, która używa slf4j jako elewacji logowania. Teraz chciałbym przechwycić wszystkie komunikaty o błędach, zanim transfer zostanie przekazany do podstawowego systemu rejestrowania. Czy można to zrobić dla slf4j? Przejrzałem dokumentację i widziałem, że możemy zmienić Appenderów w implementacji (jak log4j), aby to osiągnąć, ale czy możemy to zrobić na samym poziomie elewacji? Przechwycenie wykonuje podstawowe czynności, takie jak zwiększanie licznika globalnego pod względem liczby komunikatów o błędach itp.Komunikaty dziennika przechwytywania slf4j

+1

To nie brzmi dla mnie jak dobra decyzja dotycząca projektu. W przyszłości możesz wyłączyć tę funkcję za pomocą konfiguracji; być może masz konkretne wymagania/ograniczenia, którymi chcesz się z nami podzielić. –

+1

Wymóg jest tak prosty, jak ten, o którym wspomniałem. Przejrzyj dzienniki błędów i wyślij powiadomienie, jeśli zostanie osiągnięty próg? Szukałem trochę i znalazłem specyficzne Appendery, które robią to dla implementacji [link] (http://metrics.codahale.com/manual/logback/) – user1916312

Odpowiedz

5

Nie ma w tym nic lepszego w interfejsie API SLF4J.

Ale jeśli twój logger jest Logback, możesz to zrobić za pomocą Filter, takich jak TurboFilter.

Jeśli nie korzystasz z funkcji Logback, prawdopodobnie będziesz potrzebował czegoś takiego, jak przechwytywacz AspectJ.

+0

A jeśli konkretnym przypadkiem jest uzyskanie metryk logów, tam są dostępni aplikanci, którzy osiągają to dzięki Codahale Metrics [link] (http://metrics.codahale.com/manual/logback/) – user1916312

Powiązane problemy