Проблемы с Logcat (пауза, буфер, перенаправление вывода)

Я искал все, что, кажется, может повлиять на logcat, но я просто не могу найти ответ на эту проблему. Я отлаживаю большое приложение, которое выводит на экран несколько сотен сообщений logcat в секунду. В Eclipse я использую регулярное выражение для фильтрации по тегу журнала, но здесь все становится странно. Кнопка «пауза» продолжает активироваться без видимой причины, и, учитывая огромный объем новых сообщений, прежде чем я смогу получить журналы для конкретной последовательности событий, которые я расследую, они будут перезаписаны понемногу. . Я даже ставил точки останова и пытался собирать логи по крупицам с помощью кнопки «Экспорт», но приложение многопоточное и они все равно слишком быстро исчезают из-за сообщений из других тредов. Было бы неплохо как-то увеличить буфер или оставить старые сообщения, хотя на данный момент я готов вообще отказаться от этого и просто выводить в файл, но я не уверен, как фильтровать по тегу журнала используя мое регулярное выражение из командной строки. Каковы мои варианты?

P.S. Я искал вокруг, и я надеюсь, что это не лишнее - я не нашел ничего, что конкретно касалось бы моей проблемы, хотя я, конечно, столкнулся с множеством связанных потоков, которые не совсем помогают. Спасибо большое!


person Walker    schedule 05.06.2012    source источник


Ответы (3)


У меня была аналогичная проблема с этим. Я работал над приложением, которое взаимодействует с веб-сервером и загружает огромное количество данных. У меня были журналы почти для каждой переменной, и мне пришлось проверить их, чтобы убедиться, что результат, который я получаю от JSON, правильный. Итак, что я сделал, так это зарегистрировал все журналы в файле на моей SD-карте, и я сделал что-то вроде этого:

public void log2File(String filename, String log, int type){

   switch(type){

     case 1: // debug

     case 2: //verbose

     case 3: //warning 

      //..and etc
   }
}

Я не нашел ничего лучшего для своего решения, поэтому я так и сделал. И, конечно же, вы должны добавить свои журналы в файл и сохранить его.

Надеюсь, что эти решения покажутся вам хорошими.

person Android-Droid    schedule 05.06.2012

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

Чтобы получить нужные данные, я обычно использую команду adb logcat из командной строки. В Linux или, предположительно, в cygwin или osx вы сможете сделать:

adb logcat | tee logfile 

И оба видят пролетающие сообщения и записывают их в файл.

person Chris Stratton    schedule 05.06.2012

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

  1. Вы можете использовать adb logcat -v threadtime в командной строке, записать журналы на диск и импортировать их в LogRabbit.

  2. Механизм фильтрации должен быть достаточно быстрым, чтобы справиться с объемом журнала, о котором вы говорите.

Взгляните на http://lograbbit.com. Надеюсь, это поможет.

person Yepher    schedule 06.08.2015