1# HiLog_Lite开发指导 2 3 4## 概述 5 6HiLog_Lite是针对轻量系统类设备(参考内存≥128KiB)、小型系统类设备(参考内存≥1MiB)的hilog框架,实现了日志的打印、输出和流控功能。 7 8 9## 接口说明 10 11C语言接口: 12 13 14``` 15HILOG_DEBUG(mod, fmt, ...) 16HILOG_INFO/HILOG_WARN/HILOG_ERROR/HILOG_FATAL 17``` 18 19 20 **表1** 接口参数说明 21 22| 参数名 | 是否必填 | 参数类型 | 参数说明 | 23| -------- | -------- | -------- | -------- | 24| mod | 是 | uint8 | 模块/服务的ID。<br/>统一规划分配,最大支持64个,其中第三方APP统一使用HILOG_MODULE_APP作为模块ID。 | 25| fmt | 是 | char \* | 格式化输出字符串。<br/>1. 最大支持6个可变参数,不支持%s。<br/>2. 格式化后的单条日志最大长度128字节,超过将无法打印。 | 26| 可变参 | 否 | int32 | 仅支持数字类型,最大支持6个变参。 | 27 28 29## 开发实例 30 31以下引用samgr_lite模块使用hilog_lite框架作为实例。 32 331. 添加模块ID,在“base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite/hiview_log.h“的类型定义结构体中添加HILOG_MODULE_SAMGR定义。 34 35 ``` 36 typedef enum { 37 ... 38 HILOG_MODULE_SAMGR, 39 ... 40 } HiLogModuleType; 41 ``` 42 432. 注册模块,在“base/hiviewdfx/hilog_lite/frameworks/mini/hiview_log.c“的HiLogInit函数中添加注册代码。 44 45 ``` 46 HiLogRegisterModule(HILOG_MODULE_SAMGR, "SAMGR"); 47 ``` 48 493. 在GN文件中添加头文件依赖,文件路径为:“foundation/systemabilitymgr/samgr_lite/samgr/BUILD.gn“ 50 51 ``` 52 include_dirs = [ 53 "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite", 54 ] 55 ``` 56 574. 源文件“foundation/systemabilitymgr/samgr_lite/samgr/source/message.c“中引用头文件并调用接口。 58 59 ``` 60 #include <log.h> 61 uint32 *SAMGR_SendSharedRequest(const Identity *identity, const Request *request, uint32 *token, Handler handler) 62 { 63 ... 64 if (err != EC_SUCCESS) { 65 HILOG_ERROR(HILOG_MODULE_SAMGR, "SharedSend [%p] failed(%d)!", identity->queueId, err); 66 (void)FreeReference(&exchange); 67 } 68 ... 69 } 70 ``` 71