У процесі розробки додатку і/або його налагодження виникає необхідність отримання інформації про стан змінних чи повідомлення з інформацією про помилки. Для цих цілей в Tizen використовується бібліотека dlog. Перевірити журнал повідомлень, як свого, так і інших додатків на пристрої/емуляторі можна з допомогою утиліти 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. Аби переглянути інформаційні повідомлення вашого додатку потрібно викликати:
Аби переглянути повідомлення всіх пріоритетів потрібно викликати:
Тепер ви можете виводити у вікно логування свої повідомлення про помилки або з додатковою інформацією про ваш додаток.