Hilog_lite предоставляет функцию журналирования подсистемы DFX для мини- и малых систем.
Таблица 1 Структура директорий для Hilog_lite в подсистеме DFX
Определяет внешние API, предоставляющие функцию логирования для небольшой системы. |
|
Определяет внешние API, предоставляющие функцию логирования для мини-системы. |
|
Содержит службы и команды, связанные с логированием для мини-системы.
Реализует API, предоставляющие функцию журнала для мини-системы. |
|
Реализует API, предоставляющие возможность использования журнала для мини-системы. |
Добавьте идентификатор модуля.
Добавьте HILOG_MODULE_A в base/hiviewdfx/interfaces/hilog_lite/interfaces/native/kits/hilog_lite.
typedef enum {
/** DFX */
HILOG_MODULE_HIVIEW = 0,
/** Модуль системы A */
HILOG_MODULE_A,
/** Максимальное количество модулей */
HILOG_MODULE_MAX
} HiLogModuleType;
Зарегистрируйте модуль.
Добавьте следующий код в процесс инициализации модуля A для его регистрации с системой логирования:
HiLogRegisterModule(HILOG_MODULE_A, "A");
Измените статическую конфигурацию фреймворка DFX.
Измените g_hiviewConfig в следующем файле по необходимости. По умолчанию изменения не требуются, а логи выводятся на последовательный порт.``` utils/lite/hiview_config.c
<a name="td247e4651b964f66b48433481b4d4ec3"></a>
<table>
<thead align="left">
<tr id="r2d18b74da660408380d46a6048a9e8be">
<th class="cellrowborder" valign="top" width="25.180000000000003%" id="mcps1.1.3.1.1">
<p id="a3d342605963b49f0bbc054a45a0f6c33">
<a name="a3d342605963b49f0bbc054a45a0f6c33"></a>
<a name="a3d342605963b49f0bbc054a45a0f6c33"></a>Параметр конфигурации</p>
</th>
<th class="cellrowborder" valign="top" width="74.82%" id="mcps1.1.3.1.2">
<p id="a40c1ea12a15d43d6b53412f1db99cf3d">
<a name="a40c1ea12a15d43d6b53412f1db99cf3d"></a>
<a name="a40c1ea12a15d43d6b53412f1db99cf3d"></a>Описание</p>
</th>
</tr>
</thead>
<tbody>
<tr id="re41b7052898d4451a271af54fc0444c9">
<td class="cellrowborder" valign="top" width="25.180000000000003%" headers="mcps1.1.3.1.1 ">
<p id="ade652f31f1924b89a6043e0d8f2e2f8e">
<a name="ade652f31f1924b89a6043e0d8f2e2f8e"></a>
<a name="ade652f31f1924b89a6043e0d8f2e2f8e"></a>outputOption</p>
</td>
<td class="cellrowborder" valign="top" width="74.82%" headers="mcps1.1.3.1.2 ">
<p id="a831cff5b5e4640bba83434a0eb26c2e8">
<a name="a831cff5b5e4640bba83434a0eb26c2e8"></a>
<a name="a831cff5b5e4640bba83434a0eb26c2e8"></a>Режим вывода логов. Возможные значения:</p>
<ul id="ul11276181319272">
<li><strong id="b1027691316279">OUTPUT_OPTION_DEBUG</strong>: Логи выводятся непосредственно в последовательный порт без расписания задач. Это значение используется только для временного отладочного режима.</li>
</ul>
<ul id="ul659914264273">
<li><strong id="b1359818268279">OUTPUT_OPTION_FLOW</strong> (значение по умолчанию): Логи выводятся как поток данных в последовательный порт.</li>
</ul>
</td>
</tr>
</tbody>
</table><tr>
<td class="cellrowborder" valign="top" width="25.180000000000003%" headers="mcps1.1.3.1.1">
<p id="a0930c997c3724317a1de154038668048">
<a name="a0930c997c3724317a1de154038668048"></a>
Уровень лога вывода
</p>
</td>
<td class="cellrowborder" valign="top" width="74.82%">
<p id="a60b30c4ddebf41e895ef4eacb832629d">
<a name="a60b30c4ddebf41e895ef4eacb832629d"></a>
Уровень лога для вывода. Только те логи, чьи уровни выше или равны указанному в этом параметре, могут быть выведены. Возможные значения: <strong id="en-us_topic_0000001051742157_b388817225412">HILOG_LV_DEBUG</strong>, <strong id="en-us_topic_0000001051742157_b1010817302414">HILOG_LV_INFO</strong>, <strong id="en-us_topic_0000001051742157_b1888283212411">HILOG_LV_WARN</strong>, <strong id="en-us_topic_0000001051742157_b863582564112">HILOG_LV_ERROR</strong>, или <strong id="en-us_topic_0000001051742157_b108501827164112">HILOG_LV_FATAL</strong>.
</p>
</td>
</tr>
<tr id="r6b11c6bf7a0b4937a663ef5ec344ab50">
<td class="cellrowborder" valign="top" width="25.180000000000003%">
<p id="aad1cbc77fa614e36a2481198278ad2d4">
<a name="aad1cbc77fa614e36a2481198278ad2d4"></a>
Переключатель лога
</p>
</td>
<td class="cellrowborder" valign="top" width="74.82%">
<p id="ad714e073f17e4f33b5843c01de0a9c87">
<a name="ad714e073f17e4f33b5843c01de0a9c87"></a>
Переключатель лога. Даже если этот переключатель отключен до компиляции, модуль HiLog может успешно инициализироваться. По умолчанию этот переключатель включен.
</p>
</td>
</tr>
<ul id="ul283283282711">
<li><strong id="b18831133217271">OUTPUT_OPTION_TEXT_FILE</strong>: Логи выводятся в виде текстовых файлов.</li>
</ul>```Значение может быть <strong id="en-us_topic_0000001051742157_b860151584911"><a name="en-us_topic_0000001051742157_b860151584911"></a><a name="en-us_topic_0000001051742157_b860151584911"></a>HIVIEW_FEATURE_ON</strong> или <strong id="en-us_topic_0000001051742157_b63541819493"><a name="en-us_topic_0000001051742157_b63541819493"></a><a name="en-us_topic_0000001051742157_b63541819493"></a>HIVIEW_FEATURE_OFF</strong>.```
HIVIEW_FEATURE_ON и HIVIEW_FEATURE_OFF остаются без изменений согласно правилам перевода.</p>
</td>
</tr>
<tr id="ra276f7f5a7cb4a0b8449047b5cdff658">
<td class="cellrowborder" valign="top" width="25.180000000000003%" headers="mcps1.1.3.1.1">
<p id="ac47f6a11699c401090b9c7b8fdffff30"><a name="ac47f6a11699c401090b9c7b8fdffff30"></a><a name="ac47f6a11699c401090b9c7b8fdffff30"></a>eventSwitch</p>
</td>
<td class="cellrowborder" valign="top" width="74.82%" headers="mcps1.1.3.1.2">
<p id="a45b2e86aed4848d18c2faaa8c22c6bd3"><a name="a45b2e86aed4848d18c2faaa8c22c6bd3"></a><a name="a45b2e86aed4848d18c2faaa8c22c6bd3"></a>Переключатель вывода событий. Если этот переключатель выключен до компиляции, модуль HiEvent не будет инициализирован. По умолчанию этот переключатель выключен. Значение может быть <strong id="en-us_topic_0000001051742157_b1139516363532"><a name="en-us_topic_0000001051742157_b1139516363532"></a><a name="en-us_topic_0000001051742157_b1139516363532"></a>HIVIEW_FEATURE_ON</strong> или <strong id="en-us_topic_0000001051742157_b16939113816534"><a name="en-us_topic_0000001051742157_b16939113816534"></a><a name="en-us_topic_0000001051742157_b16939113816534"></a>HIVIEW_FEATURE_OFF</strong>.</p>
</td>
</tr>Значение может быть <strong id="en-us_topic_0000001051742157_b146761815543"><a name="en-us_topic_0000001051742157_b146761815543"></a><a name="en-us_topic_0000001051742157_b146761815543"></a>HIVIEW_FEATURE_ON</strong> или <strong id="en-us_topic_0000001051742157_b1816422311548"><a name="en-us_topic_0000001051742157_b1816422311548"></a><a name="en-us_topic_0000001051742157_b1816422311548"></a>HIVIEW_FEATURE_OFF</strong>.
2. **Печать логов.** Включите **\#include "log.h"** в файл **.c**, где требуется вывод логов. Вызовите следующий API:
HILOG\_INFO(HILOG\_MODULE\_A, "лог тест: %d", 88); Ниже приведена таблица, описывающая параметры в API. <a name="tb0e7329d09184f109c0cae274325b2f1"></a>
<table><thead align="left"><tr id="r74cdd06495cb4915ad894e023deff4b2"><th class="cellrowborder" valign="top" width="11.57%" id="mcps1.1.5.1.1"><p id="a8cfadf9da95144fd8a9eb9dbd1362b89"><a name="a8cfadf9da95144fd8a9eb9dbd1362b89"></a><a name="a8cfadf9da95144fd8a9eb9dbd1362b89"></a>Параметр</p></th>
<th class="cellrowborder" valign="top" width="11.83%" id="mcps1.1.5.1.2"><p id="afa5ef86b0da84d6db423e3026452c36e"><a name="afa5ef86b0da84d6db423e3026452c36e"></a><a name="afa5ef86b0da84d6db423e3026452c36e"></a>Обязательный</p></th>
<th class="cellrowborder" valign="top" width="15.21%" id="mcps1.1.5.1.3"><p id="a9af4eafce7f64e28b91d13840b0ebcbe"><a name="a9af4eafce7f64e28b91d13840b0ebcbe"></a><a name="a9af4eafce7f64e28b91d13840b0ebcbe"></a>Тип данных</p></th>
<th class="cellrowborder" valign="top" width="61.39%" id="mcps1.1.5.1.4"><p id="abeeb3a23760d45939183b063ebd23980"><a name="abeeb3a23760d45939183b063ebd23980"></a><a name="abeeb3a23760d45939183b063ebd23980"></a>Описание</p></th>
</tr>
</thead>
<tbody><tr id="r7e6639aad87e416ab86b866f8e41f99e"><td class="cellrowborder" valign="top" width="11.57%" headers="mcps1.1.5.1.1 "><p id="a2e815fd48b364454993f15e71fe77098"><a name="a2e815fd48b364454993f15e71fe77098"></a><a name="a2e815fd48b364454993f15e71fe77098"></a>mod</p></td>
<td class="cellrowborder" valign="top" width="11.83%" headers="mcps1.1.5.1.2 "><p id="a69360b58343843629f44854149aedac6"><a name="a69360b58343843629f44854149aedac6"></a><a name="a69360b58343843629f44854149aedac6"></a>Да</p></td>
<td class="cellrowborder" valign="top" width="15.21%" headers="mcps1.1.5.1.3 "><p id="a73824d7214b945baa2e8ed3cfc8ec3d2"><a name="a73824d7214b945baa2e8ed3cfc8ec3d2"></a><a name="a73824d7214b945baa2e8ed3cfc8ec3d2"></a>uint8</p></td>
<td class="cellrowborder" valign="top" width="61.39%" headers="mcps1.1.5.1.4 "><p id="a306257d426c040ebb352413f0ad22730"><a name="a306257d426c040ebb352413f0ad22730"></a><a name="a306257d426c040ebb352413f0ad22730"></a>ID модуля или службы.</p></td>
</tr>
</tbody>
</table> <p id="ac6cda7a8fb154e08bb81c97c329c12e6"><a name="ac6cda7a8fb154e08bb81c97c329c12e6"></a><a name="ac6cda7a8fb154e08bb81c97c329c12e6"></a>ID планируются и выделяются в единой системе. Поддерживается максимум 64 ID.</p>
</td>
</tr>
</tbody>
</table>Программы сторонних разработчиков используют **HILOG_MODULE_APP** в качестве идентификатора модуля.| Параметр | Обязательность | Тип данных | Описание |
| --- | --- | --- | --- |
| fmt | Да | char* | Форматирующий спецификатор для вывода. |
| | | | 1. Поддерживается максимум шесть переменных параметров. `%s` не поддерживается. |
| | | | 2. Максимальная длина форматированной записи журнала составляет 128 байт. При превышении максимальной длины новые журналы не могут быть выведены. |
Переменные параметры```markdown
2 "><p id="aa5fbcb8d1d8742a39ee76b96ef6d4d56"><a name="aa5fbcb8d1d8742a39ee76b96ef6d4d56"></a><a name="aa5fbcb8d1d8742a39ee76b96ef6d4d56"></a>Нет</p>
</td>
<td class="cellrowborder" valign="top" width="15. 21%" headers="mcps1. 1. 5. 1. 3 "><p id="a6f4d9ca5beaa4e8187e6b50d478af7eb"><a name="a6f4d9ca5beaa4e8187e6b50d478af7eb"></a><a name="a6f4d9ca5beaa4e8187e6b50d478af7eb"></a>int32</p>
</td>
<td class="cellrowborder" valign="top" width="61. 39%" headers="mcps1. 1. 5. 1. 4 "><p id="a7ebc1ecb043044d08dba95031abc5700"><a name="a7ebc1ecb043044d08dba95031abc5700"></a><a name="a7ebc1ecb043044d08dba95031abc5700"></a>Переменные параметры. Поддерживаются только числовые типы данных. Разрешено максимум шесть переменных параметров.</p>
</td>
</tr>
</tbody>
</table>
```## Маленькая система<a name="s33e0a62bc1dd4a2a9578fc22bd023f11"></a>
**Исходные API C и C++**
Доступные HiLog API включают следующее:
```cpp
HILOG_DEBUG(тип, ...)
HILOG_INFO(тип, ...)
HILOG_WARN(тип, ...)
HILOG_ERROR(тип, ...)
HILOG_FATAL(тип, ...)
Руководство по использованию:
Определите тег лога.
Выполните локальное отладочное тестирование. (Можно использовать доменное значение 0.)
Включите заголовочный файл с помощью #include <hilog/log.h>.4. Добавьте зависимую библиотеку libhilog в BUILD.gn.
Правила использования API:
Указатель формата по умолчанию является публичным, например, HILOGI("Привет мир\n"); >> Привет мир.
Отформатированный параметр по умолчанию является приватным, например, HILOGI("Возраст равен %d\n", 10); >> Возраст равен <приватно>.
Параметры, помеченные как %{private}, являются приватными данными, например, HILOGI("Возраст равен %{private}d\n", 10); >> Возраст равен <приватно>.
Параметры, помеченные как %{public}, являются публичными данными, например, HILOGI("Возраст равен %{public}d\n", 10); >> Возраст равен 10.Описание параметров
Значение yes указывает, что спецификатор формата является приватным. |
Аргументы для отображения с использованием форматирующего спецификатора |
Просмотр журнала1. Перейдите в директорию /storage/data/log/ для просмотра журналов hilog, сгенерированных во время отладки.
Архитектура системы журналирования
hilogtask: задача журналирования в ядре
hilogcatd: хранилище журналов в пространстве пользователя
hilogcat: консольный инструмент для просмотра журналов
Этот инструмент считывает содержимое журнала из циклического буфера через API драйвера ядра и выводит его в stdout.4. ringbuffer: настраиваемый буфер для журналов
hiviewdfx_hilog_lite
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )