Jeśli opracowuję bibliotekę Java, czy dobrą praktyką jest wydawanie instrukcji dziennika z kodu biblioteki?
Logowanie w bibliotece sprawi, że debugowanie i rozwiązywanie problemów będzie bardziej przejrzyste. Jednak z drugiej strony nie lubię zaśmiecać mojego kodu biblioteki instrukcjami logowania. Czy należy wziąć pod uwagę także wpływ na wydajność?
Odpowiedzi:
Tak, powinieneś. Korzystanie z fasady rejestrowania, takiej jak SLF4J, zapewnia elastyczność bez obciążania użytkowników konkretnymi ramami rejestrowania.
Ponadto, jeśli Twoi użytkownicy nie zawierają słoika SLF4J (z podręcznika użytkownika ):
Jeśli obawiasz się wpływu rejestrowania na wydajność, sprawdź ten wpis FAQ SLF4J . Chodzi o to, że podajesz parametry do rejestrowania instrukcji zamiast dodawać je do wbudowanego ciągu:
Czy SLF4J to kolejna fasada zrębowa?
źródło
Tak , powinieneś zalogować się ze swojego kodu biblioteki. Nie tylko pomaga ci się rozwijać, ale ludzie, którzy korzystają z biblioteki, uznają ją za przydatną. Pamiętaj, że zawsze możesz ustawić poziomy rejestrowania, aby wyświetlały tylko potrzebne instrukcje dziennika - i mogą zrobić to samo.
Ostatnio korzystałem z Mybatis , narzędzia ORM typu open source. Debugowałem problem, w którym zapytanie, które moim zdaniem powinno być poprawne, nie zwróciło żadnych wyników. To było sparametryzowane zapytanie, a ponieważ Mybatis loguje się w kodzie biblioteki, mogłem go włączyć i zobaczyć, jak aktualne zapytanie jest uruchamiane. Łatwo było powiedzieć, że zamieniłem dwa parametry. Bez zalogowania się w bibliotece nie mogłem znaleźć problemu tak szybko.
źródło