1# HiLog\_Lite开发指导<a name="ZH-CN_TOPIC_0000001185815838"></a> 2 3 4## 概述<a name="section775017517390"></a> 5 6HiLog\_Lite是针对轻量系统类设备(参考内存≥128KB)、小型系统类设备(参考内存≥1MB)的hilog框架,实现了日志的打印、输出和流控功能。 7 8## 接口说明<a name="section114412157402"></a> 9 10C语言接口: 11 12``` 13HILOG_DEBUG(mod, fmt, ...) 14HILOG_INFO/HILOG_WARN/HILOG_ERROR/HILOG_FATAL 15``` 16 17**表 1** 接口参数说明 18 19<a name="table998125624816"></a> 20<table><thead align="left"><tr id="row10981135611481"><th class="cellrowborder" valign="top" width="11.57%" id="mcps1.2.5.1.1"><p id="p11981145674811"><a name="p11981145674811"></a><a name="p11981145674811"></a>参数名</p> 21</th> 22<th class="cellrowborder" valign="top" width="11.83%" id="mcps1.2.5.1.2"><p id="p39821456124810"><a name="p39821456124810"></a><a name="p39821456124810"></a>是否必填</p> 23</th> 24<th class="cellrowborder" valign="top" width="15.21%" id="mcps1.2.5.1.3"><p id="p139822056104811"><a name="p139822056104811"></a><a name="p139822056104811"></a>参数类型</p> 25</th> 26<th class="cellrowborder" valign="top" width="61.39%" id="mcps1.2.5.1.4"><p id="p3982145618482"><a name="p3982145618482"></a><a name="p3982145618482"></a>参数说明</p> 27</th> 28</tr> 29</thead> 30<tbody><tr id="row209821456144818"><td class="cellrowborder" valign="top" width="11.57%" headers="mcps1.2.5.1.1 "><p id="p20982125616483"><a name="p20982125616483"></a><a name="p20982125616483"></a>mod</p> 31</td> 32<td class="cellrowborder" valign="top" width="11.83%" headers="mcps1.2.5.1.2 "><p id="p1298245634810"><a name="p1298245634810"></a><a name="p1298245634810"></a>是</p> 33</td> 34<td class="cellrowborder" valign="top" width="15.21%" headers="mcps1.2.5.1.3 "><p id="p1198295634817"><a name="p1198295634817"></a><a name="p1198295634817"></a>uint8</p> 35</td> 36<td class="cellrowborder" valign="top" width="61.39%" headers="mcps1.2.5.1.4 "><p id="p0982145634817"><a name="p0982145634817"></a><a name="p0982145634817"></a>模块/服务的ID。</p> 37<p id="p1982155664820"><a name="p1982155664820"></a><a name="p1982155664820"></a>统一规划分配,最大支持64个,其中第三方APP统一使用HILOG_MODULE_APP作为模块ID。</p> 38</td> 39</tr> 40<tr id="row1898225611489"><td class="cellrowborder" valign="top" width="11.57%" headers="mcps1.2.5.1.1 "><p id="p9982656164812"><a name="p9982656164812"></a><a name="p9982656164812"></a>fmt</p> 41</td> 42<td class="cellrowborder" valign="top" width="11.83%" headers="mcps1.2.5.1.2 "><p id="p998255616484"><a name="p998255616484"></a><a name="p998255616484"></a>是</p> 43</td> 44<td class="cellrowborder" valign="top" width="15.21%" headers="mcps1.2.5.1.3 "><p id="p18982256194818"><a name="p18982256194818"></a><a name="p18982256194818"></a>char *</p> 45</td> 46<td class="cellrowborder" valign="top" width="61.39%" headers="mcps1.2.5.1.4 "><p id="p2982165664818"><a name="p2982165664818"></a><a name="p2982165664818"></a>格式化输出字符串。</p> 47<a name="ol19982256164816"></a><a name="ol19982256164816"></a><ol id="ol19982256164816"><li>最大支持6个可变参数,不支持%s。</li><li>格式化后的单条日志最大长度128字节,超过将无法打印。</li></ol> 48</td> 49</tr> 50<tr id="row16982105613488"><td class="cellrowborder" valign="top" width="11.57%" headers="mcps1.2.5.1.1 "><p id="p1898225604813"><a name="p1898225604813"></a><a name="p1898225604813"></a>可变参</p> 51</td> 52<td class="cellrowborder" valign="top" width="11.83%" headers="mcps1.2.5.1.2 "><p id="p1698217568486"><a name="p1698217568486"></a><a name="p1698217568486"></a>否</p> 53</td> 54<td class="cellrowborder" valign="top" width="15.21%" headers="mcps1.2.5.1.3 "><p id="p189834566489"><a name="p189834566489"></a><a name="p189834566489"></a>int32</p> 55</td> 56<td class="cellrowborder" valign="top" width="61.39%" headers="mcps1.2.5.1.4 "><p id="p9983175654814"><a name="p9983175654814"></a><a name="p9983175654814"></a>仅支持数字类型,最大支持6个变参。</p> 57</td> 58</tr> 59</tbody> 60</table> 61 62## 开发实例<a name="section1482812550419"></a> 63 64以下引用samgr\_lite模块使用hilog\_lite框架作为实例。 65 661. 添加模块ID,在“base/hiviewdfx/hilog\_lite/interfaces/native/kits/hilog\_lite/hiview\_log.h“的类型定义结构体中添加HILOG\_MODULE\_SAMGR定义。 67 68 ``` 69 typedef enum { 70 ... 71 HILOG_MODULE_SAMGR, 72 ... 73 } HiLogModuleType; 74 ``` 75 762. 注册模块,在“base/hiviewdfx/hilog\_lite/frameworks/mini/hiview\_log.c“的HiLogInit函数中添加注册代码。 77 78 ``` 79 HiLogRegisterModule(HILOG_MODULE_SAMGR, "SAMGR"); 80 ``` 81 823. 在GN文件中添加头文件依赖,文件路径为:“foundation/distributedschedule/samgr\_lite/samgr/BUILD.gn“ 83 84 ``` 85 include_dirs = [ 86 "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite", 87 ] 88 ``` 89 904. 源文件“foundation/distributedschedule/samgr\_lite/samgr/source/message.c“中引用头文件并调用接口。 91 92 ``` 93 #include <log.h> 94 uint32 *SAMGR_SendSharedRequest(const Identity *identity, const Request *request, uint32 *token, Handler handler) 95 { 96 ... 97 if (err != EC_SUCCESS) { 98 HILOG_ERROR(HILOG_MODULE_SAMGR, "SharedSend [%p] failed(%d)!", identity->queueId, err); 99 (void)FreeReference(&exchange); 100 } 101 ... 102 } 103 ``` 104 105 106