Wyświetl logi w Logcat

Okno Logcat w Android Studio ułatwia debugowanie aplikacji, wyświetlając logi z urządzenia w czasie rzeczywistym, np. wiadomości dodane do aplikacji z klasą Log, wiadomości z usług działających na Androidzie lub komunikaty systemowe (np. dotyczące odśmiecania pamięci). Gdy aplikacja zgłosi wyjątek, Logcat wyświetli komunikat, a po nim powiązany zrzut stosu zawierający linki do wiersza kodu.

Pierwsze kroki z oknem Logcat

Aby wyświetlić komunikaty logu dotyczące aplikacji, wykonaj te czynności.

  1. W Android Studio utwórz i uruchom aplikację na urządzeniu fizycznym lub w emulatorze.
  2. Na pasku menu wybierz Widok > Okna narzędzi > Logcat.

Domyślnie Logcat przewija stronę na koniec. Kliknięcie widoku Logcat lub przewijanie w górę kółkiem myszy wyłącza tę funkcję. Aby włączyć ją z powrotem, kliknij Przewiń na koniec Przewiń do ikony Koniec na pasku narzędzi. Możesz też użyć paska narzędzi, aby wyczyścić, wstrzymać lub ponownie uruchomić aplikację Logcat.

Interfejs okna Logcat

Rysunek 1. Logcat formatuje logi, aby ułatwić skanowanie przydatnych informacji, takich jak tagi i wiadomości, oraz identyfikować różne typy logów, na przykład ostrzeżenia i błędy.

Jak odczytywać logi

Każdy dziennik ma datę, sygnaturę czasową, proces i identyfikator wątku, tag, nazwę pakietu, priorytet i powiązaną z nim wiadomość. Różne tagi mają niepowtarzalny kolor, który ułatwia identyfikację typu dziennika. Każdy wpis w logu ma priorytet FATAL, ERROR, WARNING, INFO, DEBUG lub VERBOSE.

Na przykład ten komunikat logu ma priorytet o wartości DEBUG, a tag to ProfileInstaller:

2022-12-29 04:00:18.823 30249-30321 ProfileInstaller        com.google.samples.apps.sunflower    D  Installing profile for com.google.samples.apps.sunflower

Konfigurowanie widoku logów

Standardowy widok dziennika zawiera datę i godzinę procesu dziennika, identyfikator wątku, tag, nazwę pakietu, priorytet oraz powiązaną z nim wiadomość. Domyślnie wiersze wiadomości nie są zawijane w widoku logu, ale możesz użyć opcji Soft-Wrap Ikona miękkiego zawijania na pasku narzędzi Logcat.

Możesz przełączyć się na widok Kompaktowy, który zawiera mniej domyślnych informacji, klikając Skonfiguruj opcje formatowania Logcat na pasku narzędzi Logcat.

Aby dokładniej skonfigurować ilość informacji, które chcesz wyświetlać, wybierz Modyfikuj widoki i zdecyduj, czy chcesz wyświetlać sygnaturę czasową, tagi, identyfikatory procesów czy nazwy pakietów.

Zmień schemat kolorów

Aby zmienić schemat kolorów, kliknij Android Studio > Ustawienia > Edytor > Schemat kolorów. Aby zmienić schemat kolorów widoku logów, wybierz Android Logcat. Aby zmienić schemat kolorów filtra, wybierz Filtr Logcat.

Dodatkowe opcje konfiguracji

Aby zobaczyć dodatkowe opcje konfiguracji, kliknij Android Studio > Ustawienia > Narzędzia > Logcat. Tutaj możesz wybrać rozmiar bufora cyklu Logcat, domyślny filtr nowych okien Logcat oraz to, czy chcesz dodawać filtry z historii do autouzupełniania.

Używaj Logcat w wielu oknach

Karty ułatwiają przełączanie się między różnymi urządzeniami i zapytaniami. Jeśli chcesz utworzyć wiele kart Logcat, kliknij Nowa karta Ikona nowej karty. Kliknięcie karty prawym przyciskiem myszy umożliwia zmianę nazwy karty i jej rozmieszczenia.

Możesz też podzielić widok na karcie, aby ułatwić sobie porównywanie 2 zestawów logów. Aby utworzyć podział, kliknij prawym przyciskiem myszy w widoku logu lub kliknij opcję Podziel panele na pasku narzędzi, a następnie wybierz Podziel po prawej lub Podziel w dół. Aby zamknąć podział, kliknij prawym przyciskiem myszy i wybierz Zamknij. Każdy podział pozwala określić własne połączenie z urządzeniem, wyświetlać opcje i zapytać.

Wiele okien Logcat Rysunek 2. Podziel okna Logcat w Android Studio.

Na pasku narzędzi Logcat możesz przewinąć do końca logów lub kliknąć konkretny wiersz, aby był on widoczny.

W Android Studio wyszukiwania w postaci par klucz-wartość możesz generować bezpośrednio z głównego pola zapytania. Ten system zapytań zapewnia dokładność zapytań i wyklucza logi na podstawie par klucz-wartość. Możesz używać wyrażeń regularnych, ale nie musisz polegać na nich przy zapytaniach. Aby zobaczyć sugestie, naciśnij Ctrl + Space w polu zapytania.

Lista sugestii w polu zapytania Rysunek 3. Naciśnij Ctrl + Space w polu zapytania, aby wyświetlić listę sugerowanych zapytań.

Oto kilka przykładów kluczy, których możesz używać w zapytaniu:

  • tag: dopasowanie do pola tag wpisu logu.
  • package: dopasowuje się do nazwy pakietu aplikacji do logowania.
  • process: dopasowanie do nazwy procesu aplikacji do logowania.
  • message: dopasowanie do treści komunikatu logu.
  • level: odpowiada określonemu lub wyższemu poziomowi logowania, na przykład DEBUG.
  • age: pasuje do, jeśli sygnatura czasowa wpisu jest aktualna. Wartości podaje się w postaci liczby, po której następuje litera, która określa jednostkę czasu: s – sekundy, m – minuty, h – godziny i d dni. Na przykład age: 5m filtruje tylko wiadomości zarejestrowane w ciągu ostatnich 5 minut.

Negacja i wyrażenia regularne

Te pola obsługują dopasowywanie negacji i wyrażeń regularnych: tag, package, message i line.

Negacja wyraża się przez dodanie - do nazwy pola. Na przykład -tag:MyTag dopasowuje wpisy logu, których tag nie zawiera ciągu MyTag.

Dopasowywanie wyrażeń regularnych polega na dołączeniu do nazwy pola znaku ~. Przykład: tag~:My.*Tag.

Modyfikatory negacji i wyrażeń regularnych można łączyć. Przykład: -tag~:My.*Tag.

Operatory logiczne i nawiasy

Język zapytania obsługuje operatory AND i OR wyrażone przez & i | oraz nawiasy. Na przykład:

(tag:foo | level:ERROR) & package:mine

Pamiętaj, że wymuszany jest normalny pierwszeństwo operatora, więc:

tag:foo | level:ERROR & package:mine

Jest oceniane jako:

tag:foo | (level:ERROR & package:mine)

Operatory logiczne wynikowe

Jeśli nie zastosujesz operatorów logicznych, język zapytań automatycznie będzie oceniać wiele niezanegocjowanych haseł filtra key-value o tym samym kluczu co OR, a wszystkie pozostałe z AND.

Na przykład:

tag:foo tag:bar package:myapp

Jest oceniane jako:

(tag:foo | tag:bar) & package:myapp

Jednak:

tag:foo -tag:bar package:myapp

Jest oceniane jako:

tag:foo & -tag:bar & package:myapp

Jeśli kilka haseł w zapytaniu jest rozdzielonych spacjami bez operatora logicznego, są one traktowane jako operator ORAZ z niskim priorytetem. Na przykład termin foo bar tag:bar1 | tag:bar2 jest odpowiednikiem wyrażenia 'foo bar' & (tag: bar1 | tag: bar2).

Zapytania specjalne

package:mine

Klucz pakietu obsługuje wartość specjalną mine. Ta wartość specjalna jest zgodna z nazwami pakietów znajdujących się w otwartym projekcie.

level

Zapytanie level pasuje do poziomu logu komunikatu Logcat, przy którym poziom wpisu logu jest wyższy lub równy poziomowi zapytania.

Na przykład level:INFO pasuje do dowolnego wpisu logu o poziomie logu INFO, WARN, ERROR lub ASSERT. W tym poziomie wielkość liter nie ma znaczenia. Prawidłowe poziomy to: VERBOSE, DEBUG, INFO, WARN, ERROR i ASSERT.

age

Zapytanie age dopasowuje wpisy na podstawie ich sygnatury czasowej i ma format age:<number><unit>, gdzie

  • Wartość <number> jest liczbą całkowitą
  • <unit> to jedna z wartości s, m, h i d (sekundy, minuty, godziny i dni).

Na podstawie tej listy zapytanie age dopasowuje komunikaty logu, które mają sygnaturę czasową w zakresie opisanym przez wartość. Przykład: zapytanie age:5m dopasowuje wpisy z sygnaturą czasową nie wcześniejszą niż 5 minut temu.

age:30s
age:5m
age:3h
age:1d

Pamiętaj, że sygnatura czasowa jest porównywana z sygnaturą czasową hosta, a nie połączonego urządzenia. Jeśli godzina na urządzeniu jest ustawiona nieprawidłowo, zapytanie może nie działać zgodnie z oczekiwaniami.

Klucz is

Klucza is możesz użyć w ten sposób:

  • is:crash pasuje do wpisów logu, które przedstawiają awarię aplikacji (natywną lub Java).
  • is:stacktrace pasuje do wpisów logu, które reprezentują wszystko, co wygląda jak zrzut stosu środowiska Java, niezależnie od poziomu logowania.

Klucz name

Klucz name pozwala nadać zapisanemu filtrowi unikalną nazwę, dzięki czemu będzie można go łatwo zidentyfikować w menu historii filtrów. Chociaż nie wystąpi błąd przy określaniu właściwości name więcej niż raz, IDE używa tylko ostatniej określonej wartości name w zapytaniu.

Wyświetl historię zapytań

Historię zapytań możesz zobaczyć, klikając Pokaż historię Ikona filtrowania obok pola zapytania. Aby dodać zapytanie do ulubionych, tak by pozostało na górze listy we wszystkich projektach Studio, kliknij znajdującą się obok niego gwiazdkę. Możesz też użyć klucza name:, aby ułatwić sobie rozpoznawanie ulubionych zapytań. Więcej informacji znajdziesz w artykule Zapytania specjalne.

Interfejs do dodawania zapytania do ulubionych

Rysunek 4. Dodaj zapytanie do ulubionych, klikając znajdującą się obok niego gwiazdkę.

Śledź logi awarii i ponownych uruchomień aplikacji

Gdy Logcat zauważy, że proces aplikacji został zatrzymany i uruchomiony ponownie, wyświetli komunikat w danych wyjściowych, np. PROCESS ENDED i PROCESS STARTED. Ponowne uruchomienie Logcat zachowuje konfigurację sesji, taką jak podział kart, filtry i opcje widoku, dzięki czemu możesz łatwo kontynuować sesję.

Okno Logcat dla awarii aplikacji

Rysunek 5. Po ponownym uruchomieniu procesu aplikacji Logcat wydrukuje komunikat o zakończeniu i rozpoczęciu procesu.