Filtruj dane wyjściowe w logcat według zmiennej


151

Próbuję filtrować dane wyjściowe logcata z prawdziwego urządzenia (nie emulatora) według nazwy tagu, ale otrzymuję wszystkie wiadomości, które są dość spamem. Chcę tylko czytać wiadomości z przeglądarki, która powinna być czymś w rodzaju „browser: ” lub „webkit: ”, ale to nie działa ... Oto co otrzymuję:

rzeczywista wydajność

Odpowiedzi:


294

Użyj tego:

adb logcat -s "TAGNAME"

7
Dziękuję Ci! Powyższe jest odpowiednikiem zmiennej adb logcat *: s
munch

3
Jak mogę odfiltrować <tagname>?
Arunabh Das

Uważam, że jedynym sposobem na odfiltrowanie jest poziom. Na przykład, jeśli niektóre aplikacja jest spamowanie Debug następnie ustawić poziom logcat aby tylko pokazać Informacje i wyższych poziomach: logcat *: I
ktoś gdzieś

1
Czy można użyć powyższego z -f nazwa pliku? Powiedzmy, moim scenariuszem jest filtrowanie dzienników według TagName i zrzucanie ich do pliku tekstowego.
Zielony goblin

9
Das - "adb logcat TAGNAME: s" wyciszy zaszumiony tag.
Don Park

56

Jeśli ktoś natknie się na to, tak jak ja, możesz filtrować wiele tagów, dodając przecinek między nimi, na przykład:

adb logcat -s "browser","webkit"

Wyjaśnij, gdzie mam umieścić ten kod. Jestem nową pszczołą. Proszę wyjaśnić
Zar E Ahmer

1
@Nepster Wpisz to w terminalu.
async

Jeśli używasz cygwin w systemie Windows, możesz użyć grep ... i tak, to działa.
sgupta

12

Inną opcją jest ustawienie poziomów dziennika dla określonych tagów:

adb logcat SensorService: S PowerManagerService: S NfcService: S power: I Czujniki: E

Jeśli chcesz tylko ustawić poziomy logowania dla niektórych tagów, możesz to zrobić na podstawie tagu po tagu.


9

Nie polegaj na powłoce ADB, po prostu potraktuj ją (logcat adb) jako normalne wyjście Linuksa, a następnie przepuść:

$ adb shell logcat | grep YouTag
# just like: 
$ ps -ef | grep your_proc 

5
To zły wybór, ponieważ wysyłanych jest dużo niepotrzebnego ruchu, a filtr oczywiście nie zadziała. Jeśli niepowiązany proces zarejestruje komunikat, który zawiera jakiś ciąg, pojawi się.
John Smith

and the filter obviously won't work, czy próbowałeś? Mam i wkleiłem odpowiedź zgodnie z wynikiem.
Siwei Shen 申思维

1
Pytanie dotyczyło okien, gdzie grep nie jest dostępny
sroskelley

1
Jeśli używasz cygwin w systemie Windows, możesz użyć grep ... i tak, to działa.
sgupta

6

Oto jak tworzę tag:

private static final String TAG = SomeActivity.class.getSimpleName();
 Log.d(TAG, "some description");

Możesz użyć getCannonicalName

Tutaj mam następujące filtry TAG:

  • dowolny (*) widok - VERBOSE
  • dowolna (*) aktywność - VERBOSE
  • dowolny tag zaczynający się od Xyz (*) - ERROR
  • System.out - CICHY (ponieważ używam Zaloguj się we własnym kodzie)

Oto co wpisuję w terminalu:

$  adb logcat *View:V *Activity:V Xyz*:E System.out:S
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.