Различные методы являются признаками приоритета. Поскольку вы перечислили их, они идут от наименьшего к наиболее важному. Я думаю, как конкретно вы сопоставите их с журналами отладки в своем коде, зависит от компонента или приложения, над которым вы работаете, а также от того, как Android обрабатывает их в различных вариантах сборки (eng, userdebug и user). Я проделал большую работу в нативных демонах в Android, и вот как я это делаю. Это может не относиться непосредственно к вашему приложению, но может быть что-то общее. Если мое объяснение звучит расплывчато, то это потому, что это скорее искусство, чем наука. Мое основное правило - быть максимально эффективным, обеспечить разумную отладку компонента без ущерба для производительности системы, всегда проверять наличие ошибок и регистрировать их.
V - Распечатки состояния через разные промежутки времени или при любых событиях, которые обрабатывает мой компонент. Также возможно очень подробные распечатки полезных сообщений / событий, которые мой компонент получает или отправляет.
D - Подробная информация о второстепенных событиях, которые происходят в моем компоненте, а также о полезных нагрузках сообщений / событий, которые мой компонент получает или отправляет.
I - заголовок любых сообщений / событий, которые мой компонент получает или отправляет, а также любые важные части полезной нагрузки, которые имеют решающее значение для работы моего компонента.
W - Все, что происходит, является необычным или подозрительным, но не обязательно ошибкой.
E - Ошибки, означающие вещи, которые не должны происходить, когда все работает так, как должно.
Самая большая ошибка, которую, как я вижу, делают люди, заключается в том, что они злоупотребляют такими вещами, как V, D и I, но никогда не используют W или E. Если ошибка по определению не должна возникать или должна происходить очень редко, то это чрезвычайно дешево записать сообщение, когда это произойдет. С другой стороны, если каждый раз, когда кто-то нажимает клавишу, вы выполняете Log.i (), вы злоупотребляете ресурсом общего ведения журнала. Разумеется, руководствуйтесь здравым смыслом и будьте осторожны с журналами ошибок для вещей, находящихся вне вашего контроля (например, сетевых ошибок), или записей, содержащихся в узких циклах.
Может плохо
Log.i("I am here");
Хорошо
Log.e("I shouldn't be here");
Имея это в виду, чем ближе ваш код к «готовности к работе», тем больше вы можете ограничить базовый уровень ведения журнала для вашего кода (вам нужно V в альфа-версии, D в бета-версии, I в работе или, возможно, даже W в работе ). Вам следует пройтись по нескольким простым сценариям использования и просмотреть журналы, чтобы убедиться, что вы по-прежнему в основном понимаете, что происходит, когда применяете более ограничительную фильтрацию. Если вы используете фильтр, указанный ниже, вы все равно сможете рассказать, что делает ваше приложение, но, возможно, не получите всех подробностей.
logcat -v threadtime MyApp:I *:S
Verbose
регистрации. Это то, что вы используете, когда хотите вывести все возможные логические операции.