【入门到实战】OpenHarmony南向子系统开发:HiLog_Lite开发指南

往期鸿蒙5.0全套实战文章必看:(文中附带全栈鸿蒙5.0学习资料)


概述

HiLog_Lite是针对轻量系统类设备(参考内存≥128KiB)、小型系统类设备(参考内存≥1MiB)的hilog框架,实现了日志的打印、输出和流控功能。

接口说明

C语言接口:

HILOG_DEBUG(mod, fmt, ...)
HILOG_INFO/HILOG_WARN/HILOG_ERROR/HILOG_FATAL

表1 接口参数说明

参数名是否必填参数类型参数说明
moduint8模块/服务的ID。
统一规划分配,最大支持64个,其中第三方APP统一使用HILOG_MODULE_APP作为模块ID。
fmtchar *格式化输出字符串。
1. 最大支持6个可变参数,不支持%s。
2. 格式化后的单条日志最大长度128字节,超过将无法打印。
可变参int32仅支持数字类型,最大支持6个变参。

开发实例

以下引用samgr_lite模块使用hilog_lite框架作为实例。

  1. 添加模块ID,在“base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite/hiview_log.h“的类型定义结构体中添加HILOG_MODULE_SAMGR定义。

    typedef enum {
        ...
        HILOG_MODULE_SAMGR,
        ...
    } HiLogModuleType;
    
  2. 注册模块,在“base/hiviewdfx/hilog_lite/frameworks/mini/hiview_log.c“的HiLogInit函数中添加注册代码。

    HiLogRegisterModule(HILOG_MODULE_SAMGR, "SAMGR");
    
  3. 在GN文件中添加头文件依赖,文件路径为:“foundation/systemabilitymgr/samgr_lite/samgr/BUILD.gn“

    include_dirs = [
         "//base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite",
    ]
    
  4. 源文件“foundation/systemabilitymgr/samgr_lite/samgr/source/message.c“中引用头文件并调用接口。

    #include <log.h>
    uint32 *SAMGR_SendSharedRequest(const Identity *identity, const Request *request, uint32 *token, Handler handler)
    {
        ...
        if (err != EC_SUCCESS) {
    	HILOG_ERROR(HILOG_MODULE_SAMGR, "SharedSend [%p] failed(%d)!", identity->queueId, err);
            (void)FreeReference(&exchange);
        }
        ...
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值