1e41f4b71Sopenharmony_ci# HiLog 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ci 4e41f4b71Sopenharmony_ci## 概述 5e41f4b71Sopenharmony_ci 6e41f4b71Sopenharmony_ciHiLog模块实现日志打印功能。 7e41f4b71Sopenharmony_ci 8e41f4b71Sopenharmony_ci开发者可以通过使用这些接口实现日志相关功能,输出日志时可以指定日志类型、所属业务领域、日志TAG标识、日志级别等。 9e41f4b71Sopenharmony_ci 10e41f4b71Sopenharmony_ci**系统能力:** SystemCapability.HiviewDFX.HiLog 11e41f4b71Sopenharmony_ci 12e41f4b71Sopenharmony_ci**起始版本:** 8 13e41f4b71Sopenharmony_ci 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## 汇总 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ci 18e41f4b71Sopenharmony_ci### 文件 19e41f4b71Sopenharmony_ci 20e41f4b71Sopenharmony_ci| 名称 | 描述 | 21e41f4b71Sopenharmony_ci| -------- | -------- | 22e41f4b71Sopenharmony_ci| [log.h](log_8h.md) | HiLog模块日志接口定义,通过这些接口实现日志打印相关功能。<br>**引用文件**:<hilog/log.h> <br>**库**:libhilog_ndk.z.so | 23e41f4b71Sopenharmony_ci 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci### 宏定义 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci| 名称 | 描述 | 28e41f4b71Sopenharmony_ci| -------- | -------- | 29e41f4b71Sopenharmony_ci| [LOG_DOMAIN](#log_domain) 0 | 日志所对应的业务领域,用于标识业务的子系统、模块。 | 30e41f4b71Sopenharmony_ci| [LOG_TAG](#log_tag) NULL | 字符串常量,标识调用所在的类或者业务。 | 31e41f4b71Sopenharmony_ci| [OH_LOG_DEBUG](#oh_log_debug)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_DEBUG, [LOG_DOMAIN](#log_domain), [LOG_TAG](#log_tag), \_\_VA_ARGS\_\_)) | DEBUG级别写日志,宏封装接口。 | 32e41f4b71Sopenharmony_ci| [OH_LOG_INFO](#oh_log_info)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_INFO, [LOG_DOMAIN](#log_domain), [LOG_TAG](#log_tag), \_\_VA_ARGS\_\_)) | INFO级别写日志,宏封装接口。 | 33e41f4b71Sopenharmony_ci| [OH_LOG_WARN](#oh_log_warn)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_WARN, [LOG_DOMAIN](#log_domain), [LOG_TAG](#log_tag), \_\_VA_ARGS\_\_)) | WARN级别写日志,宏封装接口。 | 34e41f4b71Sopenharmony_ci| [OH_LOG_ERROR](#oh_log_error)(type, ...) ((void)[OH_LOG_Print](#oh_log_print)((type), LOG_ERROR, [LOG_DOMAIN](#log_domain), [LOG_TAG](#log_tag), \_\_VA_ARGS\_\_)) | ERROR级别写日志,宏封装接口。 | 35e41f4b71Sopenharmony_ci| [OH_LOG_FATAL](#oh_log_fatal)(type, ...) ((void)HiLogPrint((type), LOG_FATAL, [LOG_DOMAIN](#log_domain), [LOG_TAG](#log_tag), \_\_VA_ARGS\_\_)) | FATAL级别写日志,宏封装接口。 | 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ci 38e41f4b71Sopenharmony_ci### 类型定义 39e41f4b71Sopenharmony_ci 40e41f4b71Sopenharmony_ci| 名称 | 描述 | 41e41f4b71Sopenharmony_ci| -------- | -------- | 42e41f4b71Sopenharmony_ci| typedef void(\* [LogCallback](#logcallback)) (const [LogType](#logtype) type, const [LogLevel](#loglevel) level, const unsigned int domain, const char \*tag, const char \*msg) | 函数指针,开发者自定义回调函数内容,在回调函数中,可自行对hilog日志进行处理。 | 43e41f4b71Sopenharmony_ci 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci### 枚举 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci| 名称 | 描述 | 48e41f4b71Sopenharmony_ci| -------- | -------- | 49e41f4b71Sopenharmony_ci| [LogType](#logtype) { LOG_APP = 0 } | 日志类型。 | 50e41f4b71Sopenharmony_ci| [LogLevel](#loglevel) {<br/>LOG_DEBUG = 3,<br/>LOG_INFO = 4,<br/>LOG_WARN = 5,<br/>LOG_ERROR = 6,<br/>LOG_FATAL = 7<br/>} | 日志级别。 | 51e41f4b71Sopenharmony_ci 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ci### 函数 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ci| 名称 | 描述 | 56e41f4b71Sopenharmony_ci| -------- | -------- | 57e41f4b71Sopenharmony_ci| int [OH_LOG_Print](#oh_log_print) ([LogType](#logtype) type, [LogLevel](#loglevel) level, unsigned int domain, const char \*tag, const char \*fmt,...) \_\_attribute\_\_((\_\_format\_\_(os_log | 写日志接口。 | 58e41f4b71Sopenharmony_ci| int bool [OH_LOG_IsLoggable](#oh_log_isloggable) (unsigned int domain, const char \*tag, [LogLevel](#loglevel) level) | 检查指定业务领域、TAG、级别的日志是否可以打印。 | 59e41f4b71Sopenharmony_ci| void [OH_LOG_SetCallback](#oh_log_setcallback) ([LogCallback](#logcallback) callback) | 注册函数。 | 60e41f4b71Sopenharmony_ci 61e41f4b71Sopenharmony_ci 62e41f4b71Sopenharmony_ci## 宏定义说明 63e41f4b71Sopenharmony_ci 64e41f4b71Sopenharmony_ci 65e41f4b71Sopenharmony_ci### LOG_DOMAIN 66e41f4b71Sopenharmony_ci 67e41f4b71Sopenharmony_ci``` 68e41f4b71Sopenharmony_ci#define LOG_DOMAIN 0 69e41f4b71Sopenharmony_ci``` 70e41f4b71Sopenharmony_ci 71e41f4b71Sopenharmony_ci**描述** 72e41f4b71Sopenharmony_ci 73e41f4b71Sopenharmony_ci日志所对应的业务领域,用于标识业务的子系统、模块。 74e41f4b71Sopenharmony_ci 75e41f4b71Sopenharmony_ci16进制整数,有效范围0x0~0xFFFF,超过自动截掉高位。 76e41f4b71Sopenharmony_ci 77e41f4b71Sopenharmony_ci**起始版本:** 8 78e41f4b71Sopenharmony_ci 79e41f4b71Sopenharmony_ci 80e41f4b71Sopenharmony_ci### LOG_TAG 81e41f4b71Sopenharmony_ci 82e41f4b71Sopenharmony_ci``` 83e41f4b71Sopenharmony_ci#define LOG_TAG NULL 84e41f4b71Sopenharmony_ci``` 85e41f4b71Sopenharmony_ci 86e41f4b71Sopenharmony_ci**描述** 87e41f4b71Sopenharmony_ci 88e41f4b71Sopenharmony_ci字符串常量,标识调用所在的类或者业务。tag最多为31字节,超出后会截断,不建议使用中文字符,可能出现乱码或者对齐问题。 89e41f4b71Sopenharmony_ci 90e41f4b71Sopenharmony_ci**起始版本:** 8 91e41f4b71Sopenharmony_ci 92e41f4b71Sopenharmony_ci 93e41f4b71Sopenharmony_ci### OH_LOG_DEBUG 94e41f4b71Sopenharmony_ci 95e41f4b71Sopenharmony_ci``` 96e41f4b71Sopenharmony_ci#define OH_LOG_DEBUG( type, ... ) ((void)OH_LOG_Print((type), LOG_DEBUG, LOG_DOMAIN, LOG_TAG, __VA_ARGS__)) 97e41f4b71Sopenharmony_ci``` 98e41f4b71Sopenharmony_ci 99e41f4b71Sopenharmony_ci**描述** 100e41f4b71Sopenharmony_ci 101e41f4b71Sopenharmony_ciDEBUG级别写日志,宏封装接口。 102e41f4b71Sopenharmony_ci 103e41f4b71Sopenharmony_ci使用时需要先定义日志业务领域、日志TAG,一般在源文件起始处统一定义一次。 104e41f4b71Sopenharmony_ci 105e41f4b71Sopenharmony_ci**起始版本:** 8 106e41f4b71Sopenharmony_ci 107e41f4b71Sopenharmony_ci**参数:** 108e41f4b71Sopenharmony_ci 109e41f4b71Sopenharmony_ci| 名称 | 描述 | 110e41f4b71Sopenharmony_ci| -------- | -------- | 111e41f4b71Sopenharmony_ci| type | 日志类型,三方应用日志类型为LOG_APP。 | 112e41f4b71Sopenharmony_ci| fmt | 格式化字符串,基于类printf格式的增强,支持隐私参数标识,即在格式字符串每个参数中符号后类型前增加{public}、{private}标识。 | 113e41f4b71Sopenharmony_ci| ... | 与格式字符串里参数类型对应的参数列表,参数数目、参数类型必须与格式字符串中的标识一一对应。 | 114e41f4b71Sopenharmony_ci 115e41f4b71Sopenharmony_ci**参见:** 116e41f4b71Sopenharmony_ci 117e41f4b71Sopenharmony_ci[OH_LOG_Print](#oh_log_print) 118e41f4b71Sopenharmony_ci 119e41f4b71Sopenharmony_ci 120e41f4b71Sopenharmony_ci### OH_LOG_ERROR 121e41f4b71Sopenharmony_ci 122e41f4b71Sopenharmony_ci``` 123e41f4b71Sopenharmony_ci#define OH_LOG_ERROR( type, ... ) ((void)OH_LOG_Print((type), LOG_ERROR, LOG_DOMAIN, LOG_TAG, __VA_ARGS__)) 124e41f4b71Sopenharmony_ci``` 125e41f4b71Sopenharmony_ci 126e41f4b71Sopenharmony_ci**描述** 127e41f4b71Sopenharmony_ci 128e41f4b71Sopenharmony_ciERROR级别写日志,宏封装接口。 129e41f4b71Sopenharmony_ci 130e41f4b71Sopenharmony_ci使用时需要先定义日志业务领域、日志TAG,一般在源文件起始处统一定义一次。 131e41f4b71Sopenharmony_ci 132e41f4b71Sopenharmony_ci**起始版本:** 8 133e41f4b71Sopenharmony_ci 134e41f4b71Sopenharmony_ci**参数:** 135e41f4b71Sopenharmony_ci 136e41f4b71Sopenharmony_ci| 名称 | 描述 | 137e41f4b71Sopenharmony_ci| -------- | -------- | 138e41f4b71Sopenharmony_ci| type | 日志类型,三方应用日志类型为LOG_APP。 | 139e41f4b71Sopenharmony_ci| fmt | 格式化字符串,基于类printf格式的增强,支持隐私参数标识,即在格式字符串每个参数中符号后类型前增加{public}、{private}标识。 | 140e41f4b71Sopenharmony_ci| ... | 与格式字符串里参数类型对应的参数列表,参数数目、参数类型必须与格式字符串中的标识一一对应。 | 141e41f4b71Sopenharmony_ci 142e41f4b71Sopenharmony_ci**参见:** 143e41f4b71Sopenharmony_ci 144e41f4b71Sopenharmony_ci[OH_LOG_Print](#oh_log_print) 145e41f4b71Sopenharmony_ci 146e41f4b71Sopenharmony_ci 147e41f4b71Sopenharmony_ci### OH_LOG_FATAL 148e41f4b71Sopenharmony_ci 149e41f4b71Sopenharmony_ci``` 150e41f4b71Sopenharmony_ci#define OH_LOG_FATAL( type, ... ) ((void)HiLogPrint((type), LOG_FATAL, LOG_DOMAIN, LOG_TAG, __VA_ARGS__)) 151e41f4b71Sopenharmony_ci``` 152e41f4b71Sopenharmony_ci 153e41f4b71Sopenharmony_ci**描述** 154e41f4b71Sopenharmony_ci 155e41f4b71Sopenharmony_ciFATAL级别写日志,宏封装接口。 156e41f4b71Sopenharmony_ci 157e41f4b71Sopenharmony_ci使用时需要先定义日志业务领域、日志TAG,一般在源文件起始处统一定义一次。 158e41f4b71Sopenharmony_ci 159e41f4b71Sopenharmony_ci**起始版本:** 8 160e41f4b71Sopenharmony_ci 161e41f4b71Sopenharmony_ci**参数:** 162e41f4b71Sopenharmony_ci 163e41f4b71Sopenharmony_ci| 名称 | 描述 | 164e41f4b71Sopenharmony_ci| -------- | -------- | 165e41f4b71Sopenharmony_ci| type | 日志类型,三方应用日志类型为LOG_APP。 | 166e41f4b71Sopenharmony_ci| fmt | 格式化字符串,基于类printf格式的增强,支持隐私参数标识,即在格式字符串每个参数中符号后类型前增加{public}、{private}标识。 | 167e41f4b71Sopenharmony_ci| ... | 与格式字符串里参数类型对应的参数列表,参数数目、参数类型必须与格式字符串中的标识一一对应。 | 168e41f4b71Sopenharmony_ci 169e41f4b71Sopenharmony_ci**参见:** 170e41f4b71Sopenharmony_ci 171e41f4b71Sopenharmony_ci[OH_LOG_Print](#oh_log_print) 172e41f4b71Sopenharmony_ci 173e41f4b71Sopenharmony_ci 174e41f4b71Sopenharmony_ci### OH_LOG_INFO 175e41f4b71Sopenharmony_ci 176e41f4b71Sopenharmony_ci``` 177e41f4b71Sopenharmony_ci#define OH_LOG_INFO( type, ... ) ((void)OH_LOG_Print((type), LOG_INFO, LOG_DOMAIN, LOG_TAG, __VA_ARGS__)) 178e41f4b71Sopenharmony_ci``` 179e41f4b71Sopenharmony_ci 180e41f4b71Sopenharmony_ci**描述** 181e41f4b71Sopenharmony_ci 182e41f4b71Sopenharmony_ciINFO级别写日志,宏封装接口。 183e41f4b71Sopenharmony_ci 184e41f4b71Sopenharmony_ci使用时需要先定义日志业务领域、日志TAG,一般在源文件起始处统一定义一次。 185e41f4b71Sopenharmony_ci 186e41f4b71Sopenharmony_ci**起始版本:** 8 187e41f4b71Sopenharmony_ci 188e41f4b71Sopenharmony_ci**参数:** 189e41f4b71Sopenharmony_ci 190e41f4b71Sopenharmony_ci| 名称 | 描述 | 191e41f4b71Sopenharmony_ci| -------- | -------- | 192e41f4b71Sopenharmony_ci| type | 日志类型,三方应用日志类型为LOG_APP。 | 193e41f4b71Sopenharmony_ci| fmt | 格式化字符串,基于类printf格式的增强,支持隐私参数标识,即在格式字符串每个参数中符号后类型前增加{public}、{private}标识。 | 194e41f4b71Sopenharmony_ci| ... | 与格式字符串里参数类型对应的参数列表,参数数目、参数类型必须与格式字符串中的标识一一对应。 | 195e41f4b71Sopenharmony_ci 196e41f4b71Sopenharmony_ci**参见:** 197e41f4b71Sopenharmony_ci 198e41f4b71Sopenharmony_ci[OH_LOG_Print](#oh_log_print) 199e41f4b71Sopenharmony_ci 200e41f4b71Sopenharmony_ci 201e41f4b71Sopenharmony_ci### OH_LOG_WARN 202e41f4b71Sopenharmony_ci 203e41f4b71Sopenharmony_ci``` 204e41f4b71Sopenharmony_ci#define OH_LOG_WARN( type, ... ) ((void)OH_LOG_Print((type), LOG_WARN, LOG_DOMAIN, LOG_TAG, __VA_ARGS__)) 205e41f4b71Sopenharmony_ci``` 206e41f4b71Sopenharmony_ci 207e41f4b71Sopenharmony_ci**描述** 208e41f4b71Sopenharmony_ci 209e41f4b71Sopenharmony_ciWARN级别写日志,宏封装接口。 210e41f4b71Sopenharmony_ci 211e41f4b71Sopenharmony_ci使用时需要先定义日志业务领域、日志TAG,一般在源文件起始处统一定义一次。 212e41f4b71Sopenharmony_ci 213e41f4b71Sopenharmony_ci**起始版本:** 8 214e41f4b71Sopenharmony_ci 215e41f4b71Sopenharmony_ci**参数:** 216e41f4b71Sopenharmony_ci 217e41f4b71Sopenharmony_ci| 名称 | 描述 | 218e41f4b71Sopenharmony_ci| -------- | -------- | 219e41f4b71Sopenharmony_ci| type | 日志类型,三方应用日志类型为LOG_APP。 | 220e41f4b71Sopenharmony_ci| fmt | 格式化字符串,基于类printf格式的增强,支持隐私参数标识,即在格式字符串每个参数中符号后类型前增加{public}、{private}标识。 | 221e41f4b71Sopenharmony_ci| ... | 与格式字符串里参数类型对应的参数列表,参数数目、参数类型必须与格式字符串中的标识一一对应。 | 222e41f4b71Sopenharmony_ci 223e41f4b71Sopenharmony_ci**参见:** 224e41f4b71Sopenharmony_ci 225e41f4b71Sopenharmony_ci[OH_LOG_Print](#oh_log_print) 226e41f4b71Sopenharmony_ci 227e41f4b71Sopenharmony_ci 228e41f4b71Sopenharmony_ci## 类型定义说明 229e41f4b71Sopenharmony_ci 230e41f4b71Sopenharmony_ci 231e41f4b71Sopenharmony_ci### LogCallback 232e41f4b71Sopenharmony_ci 233e41f4b71Sopenharmony_ci``` 234e41f4b71Sopenharmony_citypedef void(* LogCallback) (const LogType type, const LogLevel level, const unsigned int domain, const char *tag, const char *msg) 235e41f4b71Sopenharmony_ci``` 236e41f4b71Sopenharmony_ci 237e41f4b71Sopenharmony_ci**描述** 238e41f4b71Sopenharmony_ci 239e41f4b71Sopenharmony_ci函数指针,开发者自定义回调函数内容,在回调函数中,可自行对hilog日志进行处理。 240e41f4b71Sopenharmony_ci 241e41f4b71Sopenharmony_ci**起始版本:** 11 242e41f4b71Sopenharmony_ci 243e41f4b71Sopenharmony_ci**参数:** 244e41f4b71Sopenharmony_ci 245e41f4b71Sopenharmony_ci| 名称 | 描述 | 246e41f4b71Sopenharmony_ci| -------- | -------- | 247e41f4b71Sopenharmony_ci| type | 日志类型,三方应用日志类型为LOG_APP。 | 248e41f4b71Sopenharmony_ci| level | 日志级别,日志级别包括LOG_DEBUG、LOG_INFO、LOG_WARN、LOG_ERROR、LOG_FATAL。 | 249e41f4b71Sopenharmony_ci| domain | 日志业务领域,16进制整数,范围0x0~0xFFFF。 | 250e41f4b71Sopenharmony_ci| tag | 日志TAG,字符串,标识调用所在的类或者业务。tag最多为31字节,超出后会截断,不建议使用中文字符,可能出现乱码或者对齐问题。 | 251e41f4b71Sopenharmony_ci| msg | 日志内容,格式化之后的日志字符串。 | 252e41f4b71Sopenharmony_ci 253e41f4b71Sopenharmony_ci 254e41f4b71Sopenharmony_ci## 枚举类型说明 255e41f4b71Sopenharmony_ci 256e41f4b71Sopenharmony_ci 257e41f4b71Sopenharmony_ci### LogLevel 258e41f4b71Sopenharmony_ci 259e41f4b71Sopenharmony_ci``` 260e41f4b71Sopenharmony_cienum LogLevel 261e41f4b71Sopenharmony_ci``` 262e41f4b71Sopenharmony_ci 263e41f4b71Sopenharmony_ci**描述** 264e41f4b71Sopenharmony_ci 265e41f4b71Sopenharmony_ci日志级别。 266e41f4b71Sopenharmony_ci 267e41f4b71Sopenharmony_ci该枚举类型用于定义日志级别。各级别建议使用方式: 268e41f4b71Sopenharmony_ci 269e41f4b71Sopenharmony_ciDEBUG:比INFO级别更详细的流程记录,通过该级别的日志可以更详细地分析业务流程和定位分析问题。DEBUG级别的日志在正式发布版本中默认不会被打印,只有在调试版本或打开调试开关的情况下才会打印。 270e41f4b71Sopenharmony_ci 271e41f4b71Sopenharmony_ciINFO:用来记录业务关键流程节点,可以还原业务的主要运行过程;用来记录非正常情况信息,但这些情况都是可以预期的(如无网络信号、登录失败等)。这些日志都应该由该业务内处于支配地位的模块来记录,避免在多个被调用的模块或低级函数中重复记录。 272e41f4b71Sopenharmony_ci 273e41f4b71Sopenharmony_ciWARN:发生了较为严重的非预期情况,但是对用户影响不大,程序可以自动恢复或通过简单的操作就可以恢复的问题。 274e41f4b71Sopenharmony_ci 275e41f4b71Sopenharmony_ciERROR:程序或功能发生了错误,该错误会影响功能的正常运行或用户的正常使用,可以恢复但恢复代价较高,如重置数据等。 276e41f4b71Sopenharmony_ci 277e41f4b71Sopenharmony_ciFATAL:重大致命异常,表明程序或功能即将崩溃,故障无法恢复。 278e41f4b71Sopenharmony_ci 279e41f4b71Sopenharmony_ci**起始版本:** 8 280e41f4b71Sopenharmony_ci 281e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 282e41f4b71Sopenharmony_ci| -------- | -------- | 283e41f4b71Sopenharmony_ci| LOG_DEBUG | DEBUG日志级别,使用OH_LOG_DEBUG接口打印 | 284e41f4b71Sopenharmony_ci| LOG_INFO | INFO日志级别,使用OH_LOG_INFO接口打印 | 285e41f4b71Sopenharmony_ci| LOG_WARN | WARN日志级别,使用OH_LOG_WARN接口打印 | 286e41f4b71Sopenharmony_ci| LOG_ERROR | ERROR日志级别,使用OH_LOG_ERROR接口打印 | 287e41f4b71Sopenharmony_ci| LOG_FATAL | FATAL日志级别,使用OH_LOG_FATAL接口打印 | 288e41f4b71Sopenharmony_ci 289e41f4b71Sopenharmony_ci 290e41f4b71Sopenharmony_ci### LogType 291e41f4b71Sopenharmony_ci 292e41f4b71Sopenharmony_ci``` 293e41f4b71Sopenharmony_cienum LogType 294e41f4b71Sopenharmony_ci``` 295e41f4b71Sopenharmony_ci 296e41f4b71Sopenharmony_ci**描述** 297e41f4b71Sopenharmony_ci 298e41f4b71Sopenharmony_ci日志类型。 299e41f4b71Sopenharmony_ci 300e41f4b71Sopenharmony_ci该枚举类型用于定义应用开发者可以使用的日志类型。当前有应用日志LOG_APP。 301e41f4b71Sopenharmony_ci 302e41f4b71Sopenharmony_ci**起始版本:** 8 303e41f4b71Sopenharmony_ci 304e41f4b71Sopenharmony_ci| 枚举值 | 描述 | 305e41f4b71Sopenharmony_ci| -------- | -------- | 306e41f4b71Sopenharmony_ci| LOG_APP | 应用日志 | 307e41f4b71Sopenharmony_ci 308e41f4b71Sopenharmony_ci 309e41f4b71Sopenharmony_ci## 函数说明 310e41f4b71Sopenharmony_ci 311e41f4b71Sopenharmony_ci 312e41f4b71Sopenharmony_ci### OH_LOG_IsLoggable() 313e41f4b71Sopenharmony_ci 314e41f4b71Sopenharmony_ci``` 315e41f4b71Sopenharmony_ciint bool OH_LOG_IsLoggable (unsigned int domain, const char * tag, LogLevel level ) 316e41f4b71Sopenharmony_ci``` 317e41f4b71Sopenharmony_ci 318e41f4b71Sopenharmony_ci**描述** 319e41f4b71Sopenharmony_ci 320e41f4b71Sopenharmony_ci检查指定业务领域、TAG、级别的日志是否可以打印。 321e41f4b71Sopenharmony_ci 322e41f4b71Sopenharmony_ci**起始版本:** 8 323e41f4b71Sopenharmony_ci 324e41f4b71Sopenharmony_ci**参数:** 325e41f4b71Sopenharmony_ci 326e41f4b71Sopenharmony_ci| 名称 | 描述 | 327e41f4b71Sopenharmony_ci| -------- | -------- | 328e41f4b71Sopenharmony_ci| domain | 指定日志业务领域。 | 329e41f4b71Sopenharmony_ci| tag | 指定日志TAG。 | 330e41f4b71Sopenharmony_ci| level | 指定日志level。 | 331e41f4b71Sopenharmony_ci 332e41f4b71Sopenharmony_ci**返回:** 333e41f4b71Sopenharmony_ci 334e41f4b71Sopenharmony_ci如果指定domain、tag、level日志可以打印则返回true;否则返回false。 335e41f4b71Sopenharmony_ci 336e41f4b71Sopenharmony_ci 337e41f4b71Sopenharmony_ci### OH_LOG_Print() 338e41f4b71Sopenharmony_ci 339e41f4b71Sopenharmony_ci``` 340e41f4b71Sopenharmony_ciint OH_LOG_Print (LogType type, LogLevel level, unsigned int domain, const char * tag, const char * fmt, ... ) 341e41f4b71Sopenharmony_ci``` 342e41f4b71Sopenharmony_ci 343e41f4b71Sopenharmony_ci**描述** 344e41f4b71Sopenharmony_ci 345e41f4b71Sopenharmony_ci写日志接口。 346e41f4b71Sopenharmony_ci 347e41f4b71Sopenharmony_ci指定日志类型、日志级别、业务领域、TAG,按照类printf格式类型和隐私指示确定需要输出的变参。 348e41f4b71Sopenharmony_ci 349e41f4b71Sopenharmony_ci**起始版本:** 8 350e41f4b71Sopenharmony_ci 351e41f4b71Sopenharmony_ci**参数:** 352e41f4b71Sopenharmony_ci 353e41f4b71Sopenharmony_ci| 名称 | 描述 | 354e41f4b71Sopenharmony_ci| -------- | -------- | 355e41f4b71Sopenharmony_ci| type | 日志类型,三方应用日志类型为LOG_APP。 | 356e41f4b71Sopenharmony_ci| level | 日志级别,日志级别包括LOG_DEBUG、LOG_INFO、LOG_WARN、LOG_ERROR、LOG_FATAL。 | 357e41f4b71Sopenharmony_ci| domain | 日志业务领域,16进制整数,范围0x0~0xFFFF。 | 358e41f4b71Sopenharmony_ci| tag | 日志TAG,字符串,标识调用所在的类或者业务。 tag最多为31字节,超出后会截断,不建议使用中文字符,可能出现乱码或者对齐问题。| 359e41f4b71Sopenharmony_ci| fmt | 格式化字符串,基于类printf格式的增强,支持隐私参数标识,即在格式字符串每个参数中符号后类型前增加{public}、{private}标识。 | 360e41f4b71Sopenharmony_ci| ... | 与格式字符串里参数类型对应的参数列表,参数数目、参数类型必须与格式字符串中的标识一一对应。 | 361e41f4b71Sopenharmony_ci 362e41f4b71Sopenharmony_ci**返回:** 363e41f4b71Sopenharmony_ci 364e41f4b71Sopenharmony_ci大于等于0表示成功;小于0表示失败。 365e41f4b71Sopenharmony_ci 366e41f4b71Sopenharmony_ci 367e41f4b71Sopenharmony_ci### OH_LOG_SetCallback() 368e41f4b71Sopenharmony_ci 369e41f4b71Sopenharmony_ci``` 370e41f4b71Sopenharmony_civoid OH_LOG_SetCallback (LogCallback callback) 371e41f4b71Sopenharmony_ci``` 372e41f4b71Sopenharmony_ci 373e41f4b71Sopenharmony_ci**描述** 374e41f4b71Sopenharmony_ci 375e41f4b71Sopenharmony_ci注册函数。 376e41f4b71Sopenharmony_ci 377e41f4b71Sopenharmony_ci调用此函数后,用户实现的回调函数可以接收当前进程的所有hilog日志。 请注意,无论是否调用该接口,它都不会更改当前进程的hilog日志的默认行为。 378e41f4b71Sopenharmony_ci 379e41f4b71Sopenharmony_ci**起始版本:** 11 380e41f4b71Sopenharmony_ci 381e41f4b71Sopenharmony_ci**参数:** 382e41f4b71Sopenharmony_ci 383e41f4b71Sopenharmony_ci| 名称 | 描述 | 384e41f4b71Sopenharmony_ci| -------- | -------- | 385e41f4b71Sopenharmony_ci| callback | 用户实现的回调函数。如果不需要处理hilog日志,可以传输空指针。 | 386