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?
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.
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
.
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
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
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"
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.
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.
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.
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