Różne metody wskazują na priorytet. Jak je wymieniłeś, przechodzą od najmniej do najważniejszych. Myślę, że sposób ich mapowania na dzienniki debugowania w kodzie zależy od komponentu lub aplikacji, nad którymi pracujesz, a także od tego, jak system Android traktuje je w różnych wersjach kompilacji (eng, userdebug i user). Wykonałem sporo pracy w natywnych demonach Androida i tak właśnie to robię. Może nie dotyczyć bezpośrednio Twojej aplikacji, ale może mieć pewne wspólne podłoże. Jeśli moje wyjaśnienie brzmi niejasno, to dlatego, że niektóre z nich są bardziej sztuką niż nauką. Moją podstawową zasadą jest być tak wydajnym, jak to możliwe, zapewnić, że możesz rozsądnie debugować swój komponent bez utraty wydajności systemu, a także zawsze sprawdzać błędy i rejestrować je.
V - Wydruki stanu w różnych odstępach czasu lub po wystąpieniu zdarzeń przetwarzanych przez mój komponent. Możliwe również bardzo szczegółowe wydruki ładunków wiadomości / zdarzeń, które mój komponent odbiera lub wysyła.
D - Szczegóły dotyczące drobnych zdarzeń, które występują w moim komponencie, a także ładunków wiadomości / zdarzeń, które mój komponent odbiera lub wysyła.
I - Nagłówek wszelkich wiadomości / zdarzeń, które mój komponent otrzymuje lub wysyła, a także wszelkich ważnych elementów ładunku, które są krytyczne dla działania mojego komponentu.
W - Wszystko, co się dzieje, jest niezwykłe lub podejrzane, ale niekoniecznie błąd.
E - Błędy, co oznacza rzeczy, które nie powinny się zdarzyć, gdy rzeczy działają tak, jak powinny.
Największym błędem, jaki popełniam, jest to, że nadużywają rzeczy takich jak V, D i I, ale nigdy nie używają W lub E. Jeśli błąd z definicji nie powinien się zdarzyć lub powinien zdarzyć się bardzo rzadko, to jest to wyjątkowo taniej, aby zalogować wiadomość, gdy się pojawi. Z drugiej strony, jeśli za każdym razem, gdy ktoś naciśnie klawisz, wykonasz Log.i (), nadużywasz udostępnionego zasobu rejestrowania. Oczywiście, kieruj się zdrowym rozsądkiem i zachowaj ostrożność przy logach błędów dotyczących rzeczy poza twoją kontrolą (takich jak błędy sieciowe) lub tych zawartych w ciasnych pętlach.
Może źle
Log.i("I am here");
Dobrze
Log.e("I shouldn't be here");
Mając to wszystko na uwadze, im bliżej kodu będzie „gotowy do produkcji”, tym bardziej możesz ograniczyć podstawowy poziom rejestrowania kodu (potrzebujesz V w wersji alfa, D w wersji beta, I w produkcji, a nawet W w produkcji ). Powinieneś przejrzeć kilka prostych przypadków użycia i przejrzeć dzienniki, aby upewnić się, że nadal możesz w większości zrozumieć, co się dzieje, stosując bardziej restrykcyjne filtrowanie. Jeśli korzystasz z poniższego filtra, nadal powinieneś być w stanie powiedzieć, co robi Twoja aplikacja, ale może nie uzyskać wszystkich szczegółów.
logcat -v threadtime MyApp:I *:S
Verbose
logowania. To, czego używasz, gdy chcesz wyprowadzić każdą możliwą operację logiczną.