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)&nbsp;&nbsp;&nbsp;0 | 日志所对应的业务领域,用于标识业务的子系统、模块。 | 
30e41f4b71Sopenharmony_ci| [LOG_TAG](#log_tag)&nbsp;&nbsp;&nbsp;NULL | 字符串常量,标识调用所在的类或者业务。 | 
31e41f4b71Sopenharmony_ci| [OH_LOG_DEBUG](#oh_log_debug)(type, ...)&nbsp;&nbsp;&nbsp;((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, ...)&nbsp;&nbsp;&nbsp;((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, ...)&nbsp;&nbsp;&nbsp;((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, ...)&nbsp;&nbsp;&nbsp;((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, ...)&nbsp;&nbsp;&nbsp;((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