Процессы телефона переполняют вывод LogCat Как устранить эти сообщения?

Я знаю, как отфильтровывать сообщения в LogCat, так что не я спрашиваю.

Проблема в том, что некоторые телефоны «более шумные», чем другие, и переполняют буфер LogCat до такой степени, что вызывает ошибку, которая заставляет его отбрасывать новые сообщения.

Эта проблема не возникает на Nexus One, но возникает, например, на Samsung Continuum i400.

Есть ли способ заставить Android или LogCat полностью отбрасывать (т. е. не фильтровать) сообщения от определенных процессов?


person uTubeFan    schedule 23.09.2011    source источник
comment
Вы можете по крайней мере нажать кнопку «Очистить журнал», как только вы начнете переполнять буфер LogCat, вместо перезапуска Eclipse. Обычно это то, что я делаю, когда сталкиваюсь с таким поведением.   -  person theisenp    schedule 27.09.2011
comment
@theisenp Почему предполагают, что я этого не делаю? Я делаю это часто и перед каждым новым запуском, но это не помогает. Некоторые телефоны настолько плохи, что доводят Eclipse/LogCat до точки, когда он не добавляет новые сообщения, а очищает все существующие, заменяя их 5-10 сообщениями, и так снова и снова...   -  person uTubeFan    schedule 27.09.2011
comment
Я понимаю вашу проблему, я постоянно сталкиваюсь с одной и той же проблемой. Я просто говорю вам, что работает для меня. Когда буфер переполняется и начинает показывать вам только 5-10 сообщений, я нажимаю «Очистить журнал». Затем вместо 5-10 сообщений LogCat снова ведет себя нормально (по крайней мере, до тех пор, пока буфер снова не заполнится). Все, что я хочу сказать, это то, что я использую эту кнопку вместо перезапуска Eclipse, что экономит мне массу времени. Вам не помогает очистка журнала во время пробежки?   -  person theisenp    schedule 27.09.2011
comment
@theisenp О, теперь я вижу. Я очищаю журнал в качестве превентивной меры. Могу поклясться, что попробовал и ваше предложение, но на данный момент я не могу на 100 % вспомнить, пробовал ли я это после возникновения описанной проблемы. Я сейчас отлаживаю с хорошим телефоном. Как только у меня появится возможность снова отладить неприятный телефон, я сообщу. :) Спасибо +1.   -  person uTubeFan    schedule 27.09.2011
comment
@theisenp Я только что смог убедиться, что ваш обходной путь работает! Пожалуйста, опубликуйте это как ответ, чтобы вы могли получить награду. :)   -  person uTubeFan    schedule 04.10.2011


Ответы (5)


«Очистить журнал» иногда работает. А иногда и нет.

Когда «Очистить журнал» не помогает, нет необходимости перезапускать Eclipse. Все, что вам нужно сделать, это показать представление Devices в перспективе DDMS, и сообщение LogCat волшебным образом снова начнет появляться.

Затем вы можете закрыть вид Devices (если он вам не нужен).

person an00b    schedule 07.12.2011

Насколько я знаю, нет никакого способа запретить любому приложению публиковать что-либо в logcat. Все, что вы можете сделать, это очистить журнал перед захватом, а затем отфильтровать то, что вы не хотите видеть. Например:

adb logcat -c 
adb logcat BadProcessName:S MyProcessName:V > log.txt
CTRL-C

Надеюсь, это поможет.

person Emmanuel    schedule 28.09.2011
comment
Спасибо +1. @theisenp был первым, кто предложил обходной путь, нажав «Очистить журнал». Если он не опубликует ответ, вы получите награду. :) - person uTubeFan; 04.10.2011

Как упомянул @Emmanuel и как я уже упоминал в комментариях, я не верю, что есть способ запретить другим приложениям публиковать сообщения журнала. Вы можете отфильтровать их, но вы не можете остановить их полностью.

Самое простое решение, которое я нашел, столкнувшись с этой проблемой, — просто нажать кнопку «Очистить журнал» в Eclipse.

Очистить кнопку журнала в Eclipse

Это должно очистить буфер (по крайней мере, до тех пор, пока шумные приложения не заполнят его снова). Вы можете нажать кнопку в любое время, поэтому я считаю, что наиболее полезно очищать журнал непосредственно перед выполнением действия, которое я хочу отладить.

Я предполагаю, что еще один вариант - полностью убить процесс. Если шумное приложение не критично для приложения, которое вы пытаетесь отлаживать, вы можете просто завершить процесс.

person theisenp    schedule 04.10.2011

В этом случае лучше всего использовать функцию фильтра, чтобы отображались только журналы вашего приложения. Вы можете фильтровать по PID или по имени приложения.

Изображение

Нажмите зеленую кнопку с плюсом, чтобы создать фильтр для вашего приложения.

person nknj    schedule 11.06.2013

Вы можете перезапустить устройство, чтобы процессы не переполняли logcat. Это решение, которое я использую каждый раз.

person user1659539    schedule 03.08.2013