Jak wykluczyć niektóre wiadomości według nazwy tagu za pomocą Androida ADB logcat?

Logcat umożliwia filtrowanie dzienników, ale działa tak: definiujesz filtry, a logcat wyświetla tylko wiadomości, które pasują do filtrów. Ale czy istnieje sposób na wyświetlenie wszystkich dzienników z wyjątkiem Niektórych tagów zdefiniowanych przez filtry?

Author: Kostas, 2011-04-01

8 answers

Jeśli używasz adb logcat możesz przepuścić go przez grep i użyć odwróconego dopasowania: Ze strony Man grep :

V, --invert-match Odwróć sens dopasowania, aby wybrać niepasujące linie.

Na przykład:

$adb logcat | grep --invert-match 'notshownmatchpattern' 

Możesz to rozszerzyć używając wyrażeń regularnych .

Oto przykład takiego wyrażenia:

"/^(?:emails|tags|addresses)"

Ten sprawdzi, czy któreś z podanych wystąpi, grep nie wyświetli oni.

 46
Author: chris polzer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-22 23:46:39

Możesz to zrobić z poziomu monitora DDMS (a także Eclipse lub Android Studio) za pomocą pola wprowadzania wyrażenia regularnego i twierdzeń negative look-ahead , na przykład wykluczam wiele szumów z mojego dziennika za pomocą następującego:

tag:^(?!(WifiMulticast|WifiHW|MtpService|PushClient))

("tag:" nie jest częścią wyrażenia regularnego, ale mówi LogCat, aby stosował tylko wyrażenia regularne do pola znacznika. Jeśli użyjesz tej sztuczki w zapisanym filtrze, umieść tylko wyrażenie regularne w polu wprowadzania "Tag" i pomiń znacznik " tag:" prefix)

W Panelu Monitora logcat Android Studio możesz skonfigurować Zapisany Filtr, otwierając menu rozwijane w prawym górnym rogu (może mieć zaznaczoną opcję "Pokaż tylko wybraną aplikację") i wybierając opcję Edytuj konfigurację filtra. Utwórz nowy filtr logcat i umieść ^(?!(WifiMulticast...itd. )) w polu Log Tag, z zaznaczonym pole wyboru Regex.

 205
Author: ZoFreX,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-21 14:49:59

Jeśli chcesz wykluczyć lub filtrować niektóre wiadomości według nazwy tagu w Android studio, przejdź do okna LogCat = > Edytuj konfigurację filtra i wprowadź następujący tekst w polu " by Log Tag (regex): "

^(?!(tag1|tag2|tag3|tag4))

Zauważ, że nie ma spacji, jest to ważne

 66
Author: Phileo99,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-14 18:27:10

^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

Spowoduje to wykluczenie tekstów posiadających zawartość WindowManager, dalvik,...

tag:^(?!.*(WindowManager|dalvik|Environment|DataRouter|AlarmManager)).*$

Spowoduje wykluczenie tagów WindowManager, dalvik,... from logcat

 29
Author: Rino,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-19 09:27:43

Z powłoki można użyć polecenia:

adb logcat AlarmManagerService:S PowerManagerService:S *:V

Który będzie zawierał wszystkie logi oprócz tych z tagami AlarmManagerService i PowerManagerService.

(:S oznacza "cichy", co oznacza, że nic nie będzie drukowane dla tych tagów; :V oznacza" gadatliwy", co oznacza, że wszystko będzie drukowane dla wszystkich innych tagów. Dokumentacja Androida dla logcat zawiera więcej szczegółów o innych opcjach, których możesz użyć w filtrach.)

Możesz również użyć środowiska ANDROID_LOG_TAGS zmienna do ustawiania domyślnych filtrów, np. (w bash):

export ANDROID_LOG_TAGS="AlarmManagerService:S PowerManagerService:S *:V"
 26
Author: Rich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-07 10:36:55

Połącz zarówno pozytywne, jak i negatywne spojrzenie, aby uzyskać bardziej wydajne filtrowanie.

Przykład:

(?=(AndroidRuntime|Main|RandomTag))(?!(Audio))

Znaczniki w pierwszych zagnieżdżonych nawiasach są dołączane.

Tagi w drugim są wykluczone.

 15
Author: Baker,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-08 16:43:56

W widoku Eclipse Logcat nie ma takiej opcji. Można jednak skorzystać z poziomu dziennika, aby wykluczyć każdą wiadomość, której poziom dziennika jest zbyt niski. Np. ustawienie na I (nfo) nie wyświetla komunikatów D(ebug)i (V) erbose.

 0
Author: Lars Blumberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-01 09:43:19

Łatwym sposobem na to jest filtrowanie tylko tagów, które chcesz zobaczyć.

adb logcat -s "Tag1" -s "Tag2" -s "Tag3"

Wyświetli tylko te znaczniki.

 0
Author: Wintermute,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-28 10:43:57