Android logcat

Android logcat

В Android SDK входить набір інструментів, призначених для налагодження. Найважливіший інструмент при налагодженні - це LogCat (дуже гарна назва, яке можна перевести як Логічний Кот). Він відображає повідомлення логів (журнал логів), що розсилаються за допомогою різних методів.

Розглянемо на прикладі. Дуже часто програмісту потрібно вивести кудись проміжні результати, щоб зрозуміти, чому програма не працює. Особливо хитрі тимчасово розміщують на екрані текстову мітку і виводять туди повідомлення за допомогою методу textView.setText ( "Тут був Васька"). Але є спосіб краще. В Android є спеціальний клас android.util.Log для подібних випадків.

  • Log.e () - помилки (error)
  • Log.w () - попередження (warning)
  • Log.i () - інформація (info)
  • Log.d () - налагодження (degub)
  • Log.v () - подробиці (verbose)
  • Log.wtf () - дуже серйозна помилка! (What a Terrible Failure. Працює починаючи з Android 2.2)
  • Log.meow () - коли жерти дадуть? (MEOW!) Недокументовані метод, використовуйте на свій страх і ризик. Працює не на всіх пристроях

У першому параметрі методу використовується рядок, звана тегом. Зазвичай прийнято оголошувати глобальну статичну строкову змінну TAG на початку коду:

Деякі в складних проектах використовують наступний варіант, щоб розуміти, в якому класі відбувається виклик:

Далі вже в будь-якому місці вашої програми ви викликаєте потрібний метод журналирования з цим тегом:

Також використовується в винятки:

Його користувачі не бачать цей журнал. Але, ви, як розробник, можете побачити його через програму LogCat. доступний через ADB або DDMS.

У LogCat ви можете відфільтрувати повідомлення по заданому тегу, щоб бачити на екрані тільки свої повідомлення. Для цього виберіть потрібний тип тега зі списку Log Level.

Для відстеження повідомлень із заданим текстом введіть в поле пошуку потрібний рядок і натисніть Enter.

LogCat також можна запустити з командного рядка:

Параметри командного рядка дивіться в документації.

Швидке відключення журналирования

Тепер залишається тільки привласнити потрібне значення змінної isDebug перед створенням готового apk-файлу для поширення.

Спосіб застарів. У 17-й версії Android Build Tools з'явився клас BuildConfig. що містить статичне поле DEBUG. Можна перевірити наступним чином:

Спосіб для просунутих (звідси) - наприклад, потрібно реліз з висновком в лог, або навпаки - debug з вимкненим висновком. В цьому випадку можна створити власний параметр і додати його в секцію buildType gradle-файлу:

В цьому випадку конфігурація releaseWithLog буде релізной складанням з веденням логів. Природно, в коді злегка зміниться перевірка:

LogCat на пристрої

Розмітка для елемента списку:

Додаємо дозвіл в маніфест:

Android logcat

додаткове читання