Ответ 1
Я решил это. Я просто вытаскиваю кабель USB.
Не самое элегантное решение... но оно работает.
Иногда я пытаюсь отладить мое многопоточное приложение. Я запускаю программу, а затем появляется ошибка, вызывающая появление полезного сообщения в лог-cat... но только около четверти секунды, прежде чем прокручивать верхнюю часть окна, потому что, казалось бы, бесконечный поток не- поэтому в окно попадают полезные сообщения об ошибках. Затем я отчаянно пытаюсь захватить вертикальную полосу прокрутки (которая теперь смещается), чтобы помещать исходное сообщение об ошибке в окно до того, как буфер окна станет настолько полным, что он будет отброшен.
Должен быть лучший способ... Есть ли команда/кнопка "stop-logging-now", с которой я могу попасть сразу после появления ошибок?
Я решил это. Я просто вытаскиваю кабель USB.
Не самое элегантное решение... но оно работает.
Возможные способы решения проблемы: -
Блокировка прокрутки logcat все еще раздражает. Возможно, они должны скопировать поведение прокрутки WireShirk:
при прокрутке с использованием средней кнопки мыши, если она достигает последней строки, активируется автопрокрутка. Если прокрутка вверх, отключите автопрокрутку.
+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
.
Возможно, вы захотите перейти в режим отладки и прекратить выполнение всего в той точке, в которой вы заинтересованы?
Поместите точку останова в этом фрагменте кода, чтобы вы могли не только проверить свою ошибку, но и увидеть состояние различных переменных!
Лучший способ - фильтровать сообщения logcat. При написании кода, подверженного ошибкам, вы можете добавить параметр тега к вашему методу logcat. Затем в eclipse окно logcat позволяет фильтровать сообщения на основе этого тега, поэтому вы можете видеть только те журналы!
Вы можете приостановить ведение журнала, нажав
ctrl+S
и может возобновить каротаж, нажав:
ctrl+Q