Wyświetlanie logów bez zaśmiecania kodu

Tworząc aplikacje mobilne, często muszę logować do konsoli informacje o tym, jak przebiega działanie programu.

W Androidzie mam dostępny cały zestaw funkcji logujących np. Log.i, Log.e, Log.d itd… Jednak, jeżeli wyświetlanie tych logów jest tylko chwilowe, na czas rozwijania funkcjonalności, to konieczne jest późniejsze przeszukiwanie miejsc, gdzie się umieściło wywołania tych funkcji i ich usuwanie. Ważne jest, by nie wysłać przez przypadek takiego zanieczyszczonego kodu do wspólnego repozytorium.

 

Przykład kodu prezentujący problem:

 

 

W celu uniknięcia powyższej sytuacji i zaoszczędzenia cennego czasu używam breakpointów, które nie wstrzymują wątku i jednocześnie logują do konsoli wszelkie informacje i dane, których potrzebuję.

 

Aby dodać logowanie w ten sposób, wystarczy dodać zwykły breakpoint i PPM otworzyć menu kontekstowe, w którym po odznaczeniu checkboxa „Suspend”, określającego wstrzymywanie wątku, pojawiają się dodatkowe opcje z checkboxami. Po wybraniu checkboxa „Evaluate and log” można wprowadzić krótki kod, który zostanie przetworzony, a jego wynik zostanie wyświetlony w konsoli.

 

 

 

Wynikiem tego jest kod bez wywołań funkcji logujących i konsola pełna informacji o tym, co się dzieje w aplikacji: