更新时间:2021-10-26 GMT+08:00
分享

日志API使用

定义日志模块

  1. 定义一个日志模块ID,请注意定义的ID的值需要是唯一的。

    #define USER_DEFINE_ERROR 0x6001

    Atlas 500 DDK安装目录下的“include/inc/hiaiengine/status.h”文件中已有部分模块ID定义,请避免和其中定义的ID冲突。

  2. 定义该日志模块的错误码的枚举,如果有多个错误,就在该枚举定义多个错误码。

    typedef enum 
    { 
    USER_DEFINE_OK_CODE, 
    USER_DEFINE_INVALID_CODE
    }
    USER_DEFINE_CODE;

  3. 以HIAI_DEF_ERROR_CODE(宏定义)注册2中定义的错误码。“moduleId”对应1定义的模块ID,“loglevel”是注册给该错误码的日志级别,有“HIAI_ERROR”“HIAI_INFO”“HIAI_DEBUG”“HIAI_WARNING”四个级别可以使用。“codeName”对应2中错误码的枚举标识(去除“_CODE”)的内容,“codeDesc”为该错误码的描述信息。该宏定义实现和使用示例如下所示:

    HIAI_DEF_ERROR_CODE(moduleId, logLevel, codeName, codeDesc)
    HIAI_DEF_ERROR_CODE(USER_DEFINE_ERROR,HIAI_ERROR,USER_DEFINE_OK,"OK")

输出日志到dlog日志文件

Atlas 500业务软件中可以调用HIAI_ENGINE_LOG输出日志到dlog日志文件,具体操作请参考《Matrix API参考》中的“日志(C++语言)”章节。日志打印格式有八种,本章节结合日志注册的内容介绍其中的一种。其定义方式和使用示例如下所示:

  • 函数格式如下,参数说明如表1所示。
    #define HIAI_ENGINE_LOG(...) \ 
    HIAI_ENGINE_LOG_IMPL(__FUNCTION__, __FILE__, __LINE__, ##__VA_ARGS__) 
    void HIAI_ENGINE_LOG_IMPL(const char* funcPointer, const char* filePath, int lineNumber, const uint32_t  errorCode, const char* format, ...);
    表1 参数说明

    参数

    说明

    errorCode

    错误码

    format

    日志描述

    ...

    format中的可变参数,根据日志内容添加

  • 日志打印调用实现示例如下所示。
    HIAI_ENGINE_LOG(HIAI_INVALID_INPUT_MSG, "RUNNING OK");
分享:

    相关文档

    相关产品