Логгирование в андроид-приложениях

| 23.06.2014

При разработке андроид-приложений очень часто нужно видеть и понимать, какое значение имеет то или иное свойство объекта, определенная переменная и т.д. Чтобы получать такую информацию в разработке используется логгирование. Логгирование использует простые методы, которые выводят нужные данные в консоли Eclipse (ADT). Выглядит это так:

консоль с логгами в ADT

Здесь нас интересует, прежде всего, вкладка LogCat. Если она отсутствует, то включите ее — выберите в меню Window -> Show View -> Other -> Android-> Logcat.

Теперь в нужном месте кода достаточно добавить одну строку:

1
Log.d("my_tag", "price = " + val);

которая в процессе работы выведет в консоль значение переменной price. Лог будет помечен тэгом «my_tag», чтобы его было легче найти в куче других логов (вы можете выбрать произвольное имя). Кстати, более правильно имя тега задавать как константу (свойство класса) и подставлять в параметры метода только ее имя:

1
private static final String TAG = "my_tag";

и затем

1
Log.d(TAG, "price = " + val);

В данном случае мы используем статический метод d(String tag, String msg) класса Log. Этот метод задает уровень «DEBUG» для лога. Есть несколько таких уровней: ERROR, WARN, INFO, DEBUG, VERBOSE (перечислены от меньшего к большему). Если вы в консоли будете просматривать ошибки только уровня ERROR, то фильтр не покажет вам сообщения более верхних уровней, например, INFO и DEBUG. Фильтр по уровню DEBUG покажет также ERROR, WARN и INFO.

Давайте создадим простой пример с логом. При запуске приложения (запуске главного активити) будем писать сообщение в консоль.

Файл layout-a — res/layout/activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
 
</LinearLayout>

Строковые ресурсы — res/values/strings.xml

1
2
3
4
5
6
7
8
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string name="app_name">Logs</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
 
</resources>

MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package ru.androiddocs.logs;
 
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
 
public class MainActivity extends Activity {
    // константа для имени лога
    private static final String TAG = "my_tag";
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);			
        setContentView(R.layout.activity_main);	
        // пишем сообщение в логи	
        Log.d(TAG, "Приложение запущено!");
    }
}

Теперь, если мы запустим приложение, то увидим в куче логов и наше сообщение (первое сообщение с синим цветом шрифта).

Логгирование в андроид-приложениях

Для удобства можно настроить фильтрацию по нашему лог-тегу. Нажмите на плюсик для добавления нового фильтра.

добавление нового фильтра

В открывшемся окне добавляем название фильтра, тег для фильтрации и уровень «debug».

добавление нового фильтра

Теперь все наши логи с тегом «my_tag» будут отображаться в отдельной секции.

логи с тегом my_tag

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*