В процессе разработки приложения и/или его отладки возникает необходимость получить информацию о состоянии переменных или сообщения с информацией об ошибках. Библиотека dlog в Tizen применяется для этих целей. Проверить журналы сообщений своего и других приложений на устройстве/эмуляторе можно с помощью утилиты dlogutil.
Чтобы использовать API библиотеки dlog, необходимо включить в проект заголовочный файл dlog.h:
#include <dlog.h>
Регистрация сообщения включает в себя текст сообщения, приоритет сообщения и тег. Приоритет указывает на степень важности сообщения, а в среде разработки эти сообщения выделяются разными цветами. В библиотеке выделены следующее приоритеты:
DLOG_VERBOSE | Сообщения, содержащие подробную информацию |
DLOG_DEBUG | Сообщения для проверки выполнения программы |
DLOG_INFO | Информационные сообщения |
DLOG_WARN | Сообщения предупреждающие о возможных ошибках |
DLOG_ERROR | Сообщения об ошибках. Ошибки можно обработать и продолжить выполнение приложения, ограничив его функциональность или производительность |
DLOG_FATAL | Сообщения об ошибках, которые не возможно обработать. Возникновение таких ошибок приводит к тому, что приложение не может больше выполняться |
Источник сообщений в журнале можно указать с помощью тега. Тег это строка, идентифицирующая приложение или модуль.
Вывод сообщений обеспечивает функция
int dlog_print(log_priority prio, const char *tag, const char *fmt, ...);
Аргументы: приоритет, тег и формат – строка, которая может включать различные спецификаторы, заменяемые значениями, следующими за форматом. В случае успешного выполнения функция возвращает количество записанных байтов. В противном случае — отрицательное значение.
Теперь давайте выведем несколько сообщений с различными приоритетами и посмотрим их через окно журнала сообщений в Tizen Studio.
dlog_print(DLOG_VERBOSE, "lessonwear013", "Сообщение приоритета DLOG_VERBOSE.");
dlog_print(DLOG_DEBUG, "lessonwear013", "Сообщение приоритета DLOG_DEBUG.");
dlog_print(DLOG_INFO, "lessonwear013", "Сообщение приоритета DLOG_INFO.");
dlog_print(DLOG_WARN, "lessonwear013", "Сообщение приоритета DLOG_WARN.");
dlog_print(DLOG_ERROR, "lessonwear013", "Сообщение приоритета DLOG_ERROR.");
dlog_print(DLOG_FATAL, "lessonwear013", "Сообщение приоритета DLOG_FATAL.");
В IDE журнал доступен во вкладке Log. Открываем вкладку через Window → Show view → Log. Собщения выделены цветом приоритета. Также их можно отфильтровать по тегу, по содержимому сообщения. Можно включить/отключить сообщения определенного типа.
На устройстве посмотреть журнал сообщений можно с помощью утилиты dlogutil. Подключаемся к устройству через sdb. Сначала для использования SDB, установите устройство в режим SDB, перейдя в Settings → More system settings → Developer options → USB debugging. В консоле выполняем команду sdb connect device.ip. Для просмотра журнала вызываем dlogutil. В общем случае команда имеет следующий вид:
Выражение фильтра включает tag:priority. Чтобы посмотреть информационные сообщения нашего приложения нужно вызвать
Чтобы посмотреть сообщения всех приоритетов нужно вызвать
Теперь вы сможете выводить в окно логирования свои сообщения об ошибках или дополнительной информации из вашего приложения.