2015-04-20 5 views
0

Я использую команду adb shell logcat -v time filename программно для хранения журналов в файл на устройстве Android.Фильтровать журнал по тексту?

Существует несколько внутренних журналов для операций выделения памяти, которые хранятся в теге «dalvikvm». (См. Журналы ниже). У меня нет проблем с этими журналами, но из-за этих журналов файл журнала становится тяжелее. Так что моя забота сводится к журналам, которые содержат GC_CONCURRENT freed или WAIT_FOR_CONCURRENT_GC текст.

Я также пытался сократить журналы с помощью его тега, но он удаляет все журналы, связанные с этим тегом. Я не хочу терять нужные теги под тем же именем тега. Мне просто не нужны журналы, в которых есть GC_CONCURRENT freed или WAIT_FOR_CONCURRENT_GC текст.

Есть ли способ или любая команда adb для решения этой проблемы. Заранее спасибо.

04-18 01:02:53.644: D/dalvikvm(4302): GC_CONCURRENT freed 511K, 21% free 4106K/5192K, paused 5ms+1ms, total 19ms 
04-18 01:02:53.644: D/dalvikvm(4302): WAIT_FOR_CONCURRENT_GC blocked 6ms 
04-18 01:02:53.684: D/dalvikvm(4302): GC_CONCURRENT freed 512K, 21% free 4106K/5192K, paused 1ms+1ms, total 15ms 
04-18 01:02:53.684: D/dalvikvm(4302): WAIT_FOR_CONCURRENT_GC blocked 6ms 
04-18 01:02:53.724: D/dalvikvm(4302): GC_CONCURRENT freed 512K, 21% free 4106K/5192K, paused 2ms+1ms, total 16ms 
04-18 01:02:53.724: D/dalvikvm(4302): WAIT_FOR_CONCURRENT_GC blocked 6ms 
04-18 01:02:53.764: D/dalvikvm(4302): GC_CONCURRENT freed 512K, 21% free 4106K/5192K, paused 1ms+1ms, total 16ms 
04-18 01:02:53.764: D/dalvikvm(4302): WAIT_FOR_CONCURRENT_GC blocked 7ms 

EDIT

Я использую adb shell logcat -v time | grep -v \"GC_CONCURRENT\\|WAIT_FOR_CONCURRENT_GC\" > " + filename команду. Он работал, когда я дал filename в качестве локального пути моего компьютера. Но когда я пробовал то же самое с устройством Android /data/data/packagename/filename.txt, он не работал. В нем говорится, что bash: /data/data/packagename/filename.txt : No such file or directory Может ли кто-нибудь предложить решение для этого.

+0

У последних выпусков есть 'grep', который * может * (или не может?) Быть достаточно полным, чтобы делать отрицательные совпадения с -v и принимать несколько строк с \ | - т.е. grep -v "CG_CONCURRENT \ | CONCURRENT_GC".Но если вы в любом случае захватываете Java-код, вы можете просто сделать свою фильтрацию там с помощью метода .contains() String, отбрасывая любую строку, которая соответствует. –

+0

plz см. Править ... –

ответ

-1

Команда для печати определенных журналов с использованием имен тегов. *:S которые DonT чтения журналов, относящихся к GC_CONCURRENT freed и WAIT_FOR_CONCURRENT_GC

Синтаксис

adb logcat TAG_NAME:PRIORITY 

Ниже строка отображает только журналы с ActivityManager, MY_CUSTOM_TAG .. теги

adb logcat ActivityManager:I MY_CUSTOM_TAG:D ANOTHER_CUST_TAG:D *:S

S - Бесшумные (наивысший приоритет, на котором nothi нг когда-либо распечатаны)

Для получения дополнительной информации посетите официальный Docs

  1. Android Debug Bridge
  2. Reading and Writing Logs

ОБНОВЛЕНО Пропущенный демпинг в файл.

самосвала в файл

`adb logcat -d ActivityManager:I MY_CUSTOM_TAG:D ANOTHER_CUST_TAG:D *:S > filename.txt` 
+0

__Надежда получила отрицательную точку после выполнения вышеуказанной команды и не получила выход, который задал вопрос:) ....__ – Bharatesh

1

Не забывайте, что вы можете использовать боковые хост-утилиты с выходом из LogCat. Я бы рекомендовал использовать grep. В частности, с опцией -v/- инвертировать-совпадение.

+0

эта команда фактически фильтрует нежелательный журнал 'grep -v" GC_CONCURRENT \ | WAIT_FOR_CONCURRENT_GC "' – yas