Android: android.util.Log - замена для System.out.println()

Начинаю цикл заметок про разработку приложений для Android. Сегодня расскажу об одной полезной штуке — android.util.Log

Одной из устоявшихся конструкций в Java является System.out.println("Some String"); — эта функция выводит переданную в качестве параметра строку на стандартный вывод. Это может быть весьма полезно при отладке приложения. Однако эта функция бесполезна при запуске Android-приложения в эмуляторе, так как доступа к стандартному выводу у нас нет. И тут на помощь приходит класс android.util.Log. Кстати, я рекомендую всегда использовать логи вместо стандартного вывода — это относится не только к Android, но и вообще к любым платформам. Потому что логи — это тру.

Использовать android.util.Log очень просто:

import android.util.Log;
Log.i(TAG, "My cool message");

Существует пять уровней сообщений: ERROR, WARN, INFO, DEBUG, VERBOSE. В приведённом выше примере создаётся информационное сообщение (уровень INFO) — для этого используется метод i(). Для вывода сообщений других уровней используются методы e(), w(), d() и v(). Надеюсь, что определить, какому уровню соответствует каждый из этих методов, не составит труда. Для вывода отладочной информации рекомендуется использовать уровень DEBUG.

TAG — это строка, предназначенная для идентификации источника сообщения. Это может быть, например, имя класса, в котором создаётся сообщение. В этом случае TAG лучше сделать константой:

private static final String TAG = "MyCoolClass";

Чтобы просматривать логи в Eclipse, нужно включить соответсвующий View: Window → Show View → Other... В открывшемся окне выбрать Android → Log Cat

android-loccat-view

В этом View можно просматривать все уровни логов и фильтровать сообщения по тэгам и другим параметрам.

android-logcat-view

Документация для класса android.util.Log

Это всё, что я знаю про логи. Следующая заметка будет про различные типы ресурсов и файл R.java.

Комментарии

Импортированы из оригинального блога.

  • SolarWind #

    Спасибо! Тоже собираюсь повозиться с программированием под андроид и эта статья будет мне очень полезна.