W Log4J, Slf4J i kilku innych strukturach rejestrowania w Javie masz dwa poziomy „dewelopera” do rejestrowania:
- ODPLUSKWIĆ
- ŚLAD
Rozumiem, co robi DEBUG, ponieważ wyjaśnienie jest jasne:
Poziom DEBUG określa drobiazgowe zdarzenia informacyjne, które są najbardziej przydatne do debugowania aplikacji.
Ale poziom TRACE nie jest bardzo konkretny w przypadku użycia:
Poziom TRACE określa bardziej szczegółowe wydarzenia informacyjne niż DEBUG
(Źródło: log4J JavaDoc )
To nie mówi mi, jak i kiedy używać TRACE. Co ciekawe, nie jest to poziom ważności zdefiniowany w standardzie syslog . Googling w przypadku różnicy między TRACE a DEBUG wydaje się zwracać „użyj DEBUG, och, i jest też TRACE”. Nie mogłem znaleźć konkretnego przypadku użycia dla poziomu TRACE. Najlepsze, co mogłem znaleźć, to ta stara strona wiki debatująca nad zaletami istnienia poziomu.
To, jako architekt, budzi w mojej głowie wiele flag i pytań. Gdyby młody programista poprosił mnie o dodanie TRACE do mojej architektury, bombardowałbym go pytaniami:
- Jakie są przykłady informacji, które należy rejestrować za pomocą TRACE, a nie DEBUG?
- Jaki konkretny problem rozwiązuję, logując te informacje?
- W tych przykładach, jakie są właściwości rejestrowanych informacji, które wyraźnie odróżniają rejestrowanie na poziomie TRACE niż na poziomie DEBUG?
- Dlaczego te informacje muszą przechodzić przez infrastrukturę dziennika?
- Jakie są korzyści z utrwalania tych informacji w dziennikach dziennika, a nie tylko ich używania
System.out.println
? - Dlaczego lepiej jest do tego używać dziennika niż debugera?
- Jakie są korzyści z utrwalania tych informacji w dziennikach dziennika, a nie tylko ich używania
- Jaki byłby kanoniczny przykład rejestrowania na poziomie TRACE?
- Jakie konkretne korzyści zostały osiągnięte dzięki logowaniu na poziomie TRACE zamiast DEBUG w tym przykładzie?
- Dlaczego te zyski są ważne?
- Na odwrót: jakich problemów uniknąłem logując się do TRACE zamiast DEBUGA?
- Jak inaczej mogę rozwiązać te problemy? Dlaczego logowanie na poziomie TRACE jest lepsze niż inne rozwiązania?
- Czy w kodzie produkcyjnym należy pozostawić instrukcję dziennika poziomu TRACE? Dlaczego?
Ale biorąc pod uwagę, że jest obecny w większości głównych ram, domyślam się, że jest do czegoś przydatny? Więc ... do czego służy TRACE i co odróżnia ją od DEBUGA?