Mam jedną metodę w klasie, która jest bardzo szczegółowe, a to sprawia, że dzienniki są trudne do odczytania. Chciałbym ograniczyć jego rejestrowanie, zmieniając tylko poziom tej metody, pozostawiając inne metody w tej samej klasie niezmienione. czy to możliwe?Czy mogę ustawić poziom rejestrowania w ramach metody Java za pomocą log4j?
Odpowiedz
Możesz zmienić konfigurację poziomu dla tej klasy, ale nie dla określonych metod w klasie. Jedynym sposobem zrobienia tego, co chcesz, byłoby użycie innego rejestratora w tej metodzie, a następnie skonfigurowanie go na innym poziomie.
Mam nadzieję, że to pomoże.
Nie sądzę, że jest posible bezpośrednio do zmiany sposobu rejestrowania tylko metody
Nie można zmienić poziom rejestrowania na podstawie jednej metody. "Rejestrator" to najlepszy poziom szczegółowości kontroli. Zwykle istnieje relacja jeden-do-jednego między instancjami i klasami rejestratora ... ale zależy to od tego, w jaki sposób została zakodowana.
Jeśli możesz zmienić kod, zalecamy utworzenie specjalnego obiektu rejestrującego dla hałaśliwej metody, aby można było go kontrolować niezależnie od innego kodu korzystającego z istniejącego programu rejestrującego. (Lub może po prostu zmienić sposób rejestrowania wywołań metody).
Jeśli nie możesz zmienić kodu, może być konieczne użycie "hack", takich jak przetwarzanie plików dziennika, lub pisanie i konfigurowanie niestandardowego Appender
, który pomija niechciane komunikaty dziennika.
Jest to możliwe. Zobacz mój komentarz do OP.
Podstęp polega na utworzeniu niestandardowego poziomu (mniej niż TRACE) (jak wyjaśniono w here) i użycie tego poziomu dziennika w bardzo szczegółowych metodach.
Ofc w tej metodzie nie będziesz używał skrótów Logger do metod logowania, ale powinieneś użyć metod Logger.log (Level, Object) i Logger.log (Level, Object, Thayble).
- 1. Java - dynamicznie zmieniaj poziom rejestrowania
- 2. Jak ustawić poziom log4j w wierszu poleceń?
- 3. Jak ustawić inny poziom rejestrowania dla niestandardowej wtyczki gradientu
- 4. Jak mogę skonfigurować moją implementację BlazeDS za pomocą Log4J?
- 5. Poziom rejestrowania Liferay
- 6. Poziom rejestrowania pod maven surefire
- 7. Jak zmienić poziom logu pakietu za pomocą Log4j?
- 8. jak ustawić poziom powiększenia za pomocą css
- 9. Poziom rejestrowania sterowania za pomocą konsoli administracyjnej WebSphere
- 10. Jak mogę zmienić poziom rejestrowania pojedynczego rejestratora w środowisku wykonawczym?
- 11. Jak ustawić poziom rejestrowania dla aplikacji Spark w IntelliJ IDEA?
- 12. Jak ustawić poziom rejestrowania w systemie iOS 10?
- 13. Jak zmienić poziom rejestrowania korzeniowy programowo
- 14. Wywołanie metody C# w ramach programu Java
- 15. Android/Java: Wywołanie metody za pomocą odbicia?
- 16. Czy istnieje czysty sposób rejestrowania wyniku metody w Groovy?
- 17. Jak ustawić punkt przerwania dla metody w ramach .net
- 18. Jak mogę wydrukować dziennik wyników zapytania SQL za pomocą log4j?
- 19. Jak ustawić plik właściwości log4j?
- 20. Java zmienia wartość zmiennej za pomocą metody?
- 21. Korzystanie log4j logowanie w weblogic 9/10
- 22. Czy mogę ustawić wersję projektu za pomocą wtyczki buildnumber-maven?
- 23. Czy można ustawić ImageSize za pomocą displayImage()?
- 24. Czy mogę ustawić niestandardową licencję za pomocą WiX?
- 25. Czy mogę ustawić nagłówek za pomocą SimpleHTTPServer Pythona?
- 26. Metody typu wywoływania w ramach metody instancji
- 27. Nie można ustawić atrybutów klasy w pythonie za pomocą metody
- 28. Ustaw poziom rejestrowania do debugowania w produkcji Playframework 2.0?
- 29. Tworzenie wielu plików dziennika o różnej zawartości za pomocą log4j
- 30. Jak prawidłowo zarządzać cyklem życia logów utworzonych za pomocą wtyczek za pomocą logowania Java z log4j2
Możesz zadeklarować własny poziom rejestrowania i użyć go w tej metodzie. Innym sposobem jest trochę hacky i polega na podniesieniu poziomu Log w metodzie (przez Logger.setLevel()), ale to naprawdę sprytne – BigMike