Ответ 1
Кажется, что logcat
не может правильно анализировать имена тегов пробелами. Поэтому вместо этого я предлагаю использовать grep
на устройстве:
adb shell "logcat | grep 'Web Console'"
Есть несколько вопросов по теме, однако ни одна из них, похоже, не касается конкретной проблемы, с которой я сталкиваюсь.
Я разрабатываю приложение с помощью Cordova/Ionic, а информация для отладки печати, которую я выводил с помощью console.log()
с помощью adb logcat CordovaLog:D *:S
, работал очень хорошо до некоторых обновлений. Теперь я не могу понять, как правильно фильтровать вывод logcat, поэтому я могу получить информацию об отладке из своего приложения.
Ведение журнала работает. Если я не буду устанавливать фильтры и перенаправить вывод в файл, я могу просмотреть информацию об отладке среди всех других отладочных сообщений, и она выглядит так:
I/Web Console: Event triggered: device.ready:1
Запись на экран также работает, но со скоростью около 100 строк в секунду. Я пробовал, по крайней мере, следующее для фильтрации вывода:
adb logcat -s "Web Console"
adb logcat "Web Console":V
adb logcat "Web Console":*
adb logcat -s Web
adb logcat Web:V
adb logcat "myApp":V
adb logcat myApp:V
adb logcat -s myApp
... и, возможно, другие, о которых я уже забыл. Они либо печатают абсолютно ничего, либо абсолютно все, что связано с системными услугами.
Я нахожусь в Windows, поэтому я не могу grep
, и устройство, от которого я отлаживаю, работает под управлением Android 4.2.2, поэтому я не могу использовать GapDebug, и ни один из них не может быть доступен для доступа к журнал устройства через chrome://inspect
в Chrome.
Я действительно хотел бы понять, как работает фильтрация вывода logcat. Я не хочу записывать все файлы в файл, а затем менять их.
Кажется, что logcat
не может правильно анализировать имена тегов пробелами. Поэтому вместо этого я предлагаю использовать grep
на устройстве:
adb shell "logcat | grep 'Web Console'"
Альтернативно при запуске adb на linux или unix на основе os/ git bash:
adb logcat | grep 'Web Console'
Пока вы можете использовать grep
под Linux/Unix, findstr
может быть вашим выбором под Windows:
adb logcat | findstr /C:"Web Console"
Если вы предпочитаете использовать grep
под Windows, вы можете получить его из
http://gnuwin32.sourceforge.net/packages/grep.htm.
Что работает для меня в 2019 году:
adb -d logcat chromium:I *:S
-d
указывает на физическое устройство в моем случае. Если adb logcat
результаты adb logcat
в текстовый файл и выполните поиск по запросу "CONSOLE", что даст вам провайдера для вашего фильтра logcat. Кажется, это меняется со временем и в зависимости от вашей конкретной среды разработки.