Как остановить сообщения logcat

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

Должен быть лучший способ... Есть ли команда/кнопка "stop-logging-now", с которой я могу попасть сразу после появления ошибок?

Ответ 1

Я решил это. Я просто вытаскиваю кабель USB.

Не самое элегантное решение... но оно работает.

Ответ 2

Возможные способы решения проблемы: -

  • В Logcat на верхней правой верхней вкладке указана стрелка вниз под ним, как вы видите в кнопке загрузки на веб-сайтах. Просто щелкните его, и ваша автопрокрутка остановится.

enter image description here

  • Просто создайте фильтр с тегом требуемых журналов. Logcat будет фильтровать эти сообщения из основного журнала и замедлять прокрутки.

enter image description here

Ответ 3

Блокировка прокрутки logcat все еще раздражает. Возможно, они должны скопировать поведение прокрутки WireShirk:

при прокрутке с использованием средней кнопки мыши, если она достигает последней строки, активируется автопрокрутка. Если прокрутка вверх, отключите автопрокрутку.

Ответ 4

+1 для ответа CRUSADER.

У меня другое решение. Я построил класс Logging с тем же интерфейсом, что и Log, который регистрируется в файле и logcat. Я также добавляю UncaughtExceptionHandler, который использует мой Logger. Типичный (вырезанный) код в Logger выглядит как

public void d(String tag, String message) {
    Log.d(tag, message);
    logLine('D', tag, message);
}

private void logLine(char category, String tag, String message) {
    StringBuilder builder = new StringBuilder(tag.length()+message.length()+1);
    builder.append(category).append(':').append(tag).append(':').append(message);
    logStream.println(builder.toString());
    logStream.flush();
    logSize += builder.length()+1;
    if (logSize > maxLogSize) {
        String name = logName; // keep the old logName for continued message
        close();
        createLogFile();       // cleanup old logs and open a new one
        logStream.println("Log continued from "+name);
    }
}

Ключевой причиной развития Logger была возможность отправлять их в отчетах об ошибках от бета-тестеров. Поскольку интерфейс тот же, он может использоваться так же, как и исходный класс Log.

Ответ 5

Возможно, вы захотите перейти в режим отладки и прекратить выполнение всего в той точке, в которой вы заинтересованы?

Поместите точку останова в этом фрагменте кода, чтобы вы могли не только проверить свою ошибку, но и увидеть состояние различных переменных!

Ответ 6

Лучший способ - фильтровать сообщения logcat. При написании кода, подверженного ошибкам, вы можете добавить параметр тега к вашему методу logcat. Затем в eclipse окно logcat позволяет фильтровать сообщения на основе этого тега, поэтому вы можете видеть только те журналы!

Ответ 7

Вы можете приостановить ведение журнала, нажав

ctrl+S 

и может возобновить каротаж, нажав:

ctrl+Q