openharmony 鸿蒙 capi-log-h

2026-08-25 浏览 (1)

log.h

Overview

Defines the logging functions of the HiLog module. Before outputting logs, you must define the service domain, and log tag, use the API with the specified log type and level, and specify the privacy identifier.
Service domain: service domain of logs. You can define the value as required. Its value is a hexadecimal integer ranging from 0x0 to 0xFFFF. If the value exceeds the range, logs cannot be printed.
Log tag: a string used to identify the class, file, or service behavior.
Log level: DEBUG, INFO, WARN, ERROR, or FATAL.
Parameter format: printf format string, which starts with a % character, including a parameter type identifier and a variable parameter.
Privacy identifier: {public} or {private} added between the % character and the parameter type identifier in each parameter. Note: If no privacy identifier is added, the parameter is considered to be private.

File to include: <hilog/log.h>

Library: libhilog_ndk.z.so

System capability: SystemCapability.HiviewDFX.HiLog

Since: 8

Related module: HiLog

Summary

Enum

Nametypedef KeywordDescription
LogTypeLogTypeEnumerates the log types. You can use this function to specify the type of output logs. Currently, only LOG_APP is available.
LogLevelLogLevelEnumerates the log levels. You are advised to select log levels based on their respective use cases. Log levels:
DEBUG: provides more detailed process information than INFO logs to help developers analyze service processes and locate faults. DEBUG logs are not recorded in official versions by default. They are available in debug versions or in official versions with the debug function enabled.
INFO: indicates the key service process nodes and exceptions (for example, no network signal or login failure) that occur during service running. These logs should be recorded by the dominant module in the service to avoid repeated logging conducted by multiple invoked modules or low-level functions.
WARN: indicates a severe, unexpected fault that has little impact on users and can be rectified by the programs themselves or through simple operations.
ERROR: indicates a program or functional error that affects the normal running or use of the functionality and can be fixed at a high cost, for example, by resetting data.
FATAL: indicates that a program or functionality is about to crash and the fault cannot be rectified.
PreferStrategyPreferStrategyEnumerates the preference strategies. This enum is used in OH_LOG_SetLogLevel. The minimum log level that takes effect varies according to the strategy.

Macros

NameDescription
OH_LOG_DEBUG(type, ...) ((void)OH_LOG_Print((type), LOG_DEBUG, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))Indicates DEBUG logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.
Since: 8
OH_LOG_INFO(type, ...) ((void)OH_LOG_Print((type), LOG_INFO, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))Indicates INFO logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.
Since: 8
OH_LOG_WARN(type, ...) ((void)OH_LOG_Print((type), LOG_WARN, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))Indicates WARN logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.
Since: 8
OH_LOG_ERROR(type, ...) ((void)OH_LOG_Print((type), LOG_ERROR, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))Indicates ERROR logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.
Since: 8
OH_LOG_FATAL(type, ...) ((void)OH_LOG_Print((type), LOG_FATAL, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))Indicates FATAL logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.

Since: 8
LOG_DOMAINSpecifies the service domain of the output log. The default value is 0. The value range is 0x0 to 0xFFFF. If the value of domainID exceeds the range, the log cannot be printed.
Since: 8
LOG_TAGIdentifies the class or service behavior where the log is called. The value is a string constant, which is NULL by default. The maximum length is 31 bytes. If the length exceeds 31 bytes, the log will be truncated. The value must be a non-null string. Otherwise, the log cannot be printed. Chinese characters are not recommended, because they may cause garbled characters or alignment issues.
Since: 8

Functions

Nametypedef KeywordDescription
int OH_LOG_Print(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *fmt, ...)-Outputs logs of the specified type, level, domain, tag, and variables determined by the format specifier and privacy identifier in the printf format.
int OH_LOG_PrintMsg(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *message)-Outputs constant log strings of the specified type, level, domain, and tag.
int OH_LOG_PrintMsgByLen(LogType type, LogLevel level, unsigned int domain, const char *tag, size_t tagLen, const char *message, size_t messageLen)-Outputs log constant strings of the specified domain, tag, and level. The tag and string length must be specified. Unlike OH_LOG_PrintMsg, this API allows strings without terminators.
int OH_LOG_VPrint(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *fmt, va_list ap)-Outputs logs of the specified type, level, domain, tag, and variables determined by the format specifier and privacy identifier in the printf format. The variables are of the va_list type.
bool OH_LOG_IsLoggable(unsigned int domain, const char *tag, LogLevel level)-Checks whether logs of the specified service domain, tag, and level can be printed.
typedef void (*LogCallback)(const LogType type, const LogLevel level, const unsigned int domain, const char *tag, const char *msg)LogCallbackCustomizes the processing of HiLog logs in the callback.
void OH_LOG_SetCallback(LogCallback callback)-Registers a callback function. After this function is called, the custom callback can receive all HiLog logs of the current process.
Note that whether this API is called or not, it does not change the default log processing of the current process.
void OH_LOG_SetMinLogLevel(LogLevel level)-Sets the minimum log level.
void OH_LOG_SetLogLevel(LogLevel level, PreferStrategy prefer)-Sets the minimum log level of the current application process. You can configure different preference strategies.

NOTE

If the set log level is lower than the global log level, the OH_LOG_SetMinLogLevel() setting does not take effect.

In the debug applications, the OH_LOG_SetMinLogLevel() and OH_LOG_SetLogLevel() functions do not take effect.

Enum Description

LogType

enum LogType

Description

Enumerates the log types. You can use this function to specify the type of output logs. Currently, only LOG_APP is available.

Since: 8

Enum ItemDescription
LOG_APP = 0Application log.

LogLevel

enum LogLevel

Description

Enumerates the log levels. You are advised to select log levels based on their respective use cases. Log levels:
DEBUG: provides more detailed process information than INFO logs to help developers analyze service processes and locate faults. DEBUG logs are not recorded in official versions by default. They are available in debug versions or in official versions with the debug function enabled.
INFO: indicates the key service process nodes and exceptions (for example, no network signal or login failure) that occur during service running. These logs should be recorded by the dominant module in the service to avoid repeated logging conducted by multiple invoked modules or low-level functions.
WARN: indicates a severe, unexpected fault that has little impact on users and can be rectified by the programs themselves or through simple operations.
ERROR: indicates a program or functional error that affects the normal running or use of the functionality and can be fixed at a high cost, for example, by resetting data.
FATAL: indicates that a program or functionality is about to crash and the fault cannot be rectified.

Since: 8

Enum ItemDescription
LOG_DEBUG = 3DEBUG level to be used by OH_LOG_DEBUG.
LOG_INFO = 4INFO level to be used by OH_LOG_INFO.
LOG_WARN = 5WARN level to be used by OH_LOG_WARN.
LOG_ERROR = 6ERROR level to be used by OH_LOG_ERROR.
LOG_FATAL = 7FATAL level to be used by OH_LOG_FATAL.

PreferStrategy

enum PreferStrategy

Description

Enumerates the preference strategies. This enum is used in OH_LOG_SetLogLevel. The minimum log level that takes effect varies according to the strategy.

Since: 21

Enum ItemDescription
UNSET_LOGLEVEL = 0The setting is cleared. The minimum log level that actually takes effect is the system-controlled minimum log level.
PREFER_CLOSE_LOG = 1The minimum log level that actually takes effect is the larger value of the new log level and the system-controlled minimum log level.
PREFER_OPEN_LOG = 2The minimum log level that actually takes effect is the smaller value of the new log level and the system-controlled minimum log level.

Function Description

OH_LOG_Print()

int OH_LOG_Print(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *fmt, ...)

Description

Outputs logs of the specified type, level, domain, tag, and variables determined by the format specifier and privacy identifier in the printf format.

Since: 8

Parameters

NameDescription
LogType typeLog type. The type for third-party applications is defined by LOG_APP.
LogLevel levelLog level. The value can be LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, and LOG_FATAL.
unsigned int domainService domain. Its value is a hexadecimal integer ranging from 0x0 to 0xFFFF. If the value exceeds the range, logs cannot be printed.
const char *tagLog tag, which is a string used to identify the class, file, or service. A tag can contain a maximum of 31 bytes. If a tag exceeds this limit, it will be truncated. Chinese characters are not recommended because garbled characters or alignment problems may occur.
const char *fmtFormat string, which is an enhancement of a printf format string and supports the privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier in each parameter.
...Parameter list corresponding to the parameter type in the format string. The number and type of parameters must be mapped onto the identifier in the format string.

Returns

TypeDescription
int0 or a larger value if the operation is successful; a value smaller than 0 otherwise.
Possible failure causes: The LogLevel passed in is lower than the allowed log level; the domain is out of range; the tag is a null pointer; the CPU is overloaded; the memory is insufficient; the number of logs on the device is too large.

OH_LOG_PrintMsg()

int OH_LOG_PrintMsg(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *message)

Description

Outputs constant log strings of the specified type, level, domain, and tag.

Since: 18

Parameters

NameDescription
LogType typeLog type. The type for third-party applications is defined by LOG_APP.
LogLevel levelLog level. The value can be LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, and LOG_FATAL.
unsigned int domainService domain. Its value is a hexadecimal integer ranging from 0x0 to 0xFFFF. If the value exceeds the range, logs cannot be printed.
const char *tagLog tag, which is a string used to identify the class, file, or service. A tag can contain a maximum of 31 bytes. If a tag exceeds this limit, it will be truncated. Chinese characters are not recommended because garbled characters or alignment problems may occur.
const char *messageConstant log string.

Returns

TypeDescription
int0 or a larger value if the operation is successful; a value smaller than 0 otherwise.
Possible failure causes: The LogLevel passed in is lower than the allowed log level; the domain is out of range; the tag is a null pointer; the CPU is overloaded; the memory is insufficient; the number of logs on the device is too large.

OH_LOG_PrintMsgByLen()

int OH_LOG_PrintMsgByLen(LogType type, LogLevel level, unsigned int domain, const char *tag, size_t tagLen, const char *message, size_t messageLen)

Description

Outputs log constant strings of the specified domain, tag, and level. The tag and string length must be specified. Unlike OH_LOG_PrintMsg, this API allows strings without terminators.

Since: 18

Parameters

NameDescription
LogType typeLog type. The type for third-party applications is defined by LOG_APP.
LogLevel levelLog level. The value can be LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, and LOG_FATAL.
unsigned int domainService domain. Its value is a hexadecimal integer ranging from 0x0 to 0xFFFF. If the value exceeds the range, logs cannot be printed.
const char *tagLog tag, which is a string used to identify the class, file, or service. A tag can contain a maximum of 31 bytes. If a tag exceeds this limit, it will be truncated. Chinese characters are not recommended because garbled characters or alignment problems may occur.
size_t tagLenLength of the tag.
const char *messageConstant log string.
size_t messageLenLength of the constant string, which is less than 3500 characters.

Returns

TypeDescription
int0 or a larger value if the operation is successful; a value smaller than 0 otherwise.
Possible failure causes: The LogLevel passed in is lower than the allowed log level; the domain is out of range; the tag is a null pointer; the CPU is overloaded; the memory is insufficient; the number of logs on the device is too large.

OH_LOG_VPrint()

int OH_LOG_VPrint(LogType type, LogLevel level, unsigned int domain, const char *tag, const char *fmt, va_list ap)

Description

Outputs logs of the specified type, level, domain, tag, and variables determined by the format specifier and privacy identifier in the printf format. The variables are of the va_list type.

Since: 18

Parameters

NameDescription
LogType typeLog type. The type for third-party applications is defined by LOG_APP.
LogLevel levelLog level. The value can be LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, and LOG_FATAL.
unsigned int domainService domain. Its value is a hexadecimal integer ranging from 0x0 to 0xFFFF. If the value exceeds the range, logs cannot be printed.
const char *tagLog tag, which is a string used to identify the class, file, or service. A tag can contain a maximum of 31 bytes. If a tag exceeds this limit, it will be truncated. Chinese characters are not recommended because garbled characters or alignment problems may occur.
const char *fmtFormat string, which is an enhancement of a printf format string and supports the privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier in each parameter.
va_list apParameter list of the va_list type that corresponds to the parameter type in the format string. The number and type of parameters must be mapped onto the identifier in the format string.

Returns

TypeDescription
int0 or a larger value if the operation is successful; a value smaller than 0 otherwise.
Possible failure causes: The LogLevel passed in is lower than the allowed log level; the domain is out of range; the tag is a null pointer; the CPU is overloaded; the memory is insufficient; the number of logs on the device is too large.

OH_LOG_IsLoggable()

bool OH_LOG_IsLoggable(unsigned int domain, const char *tag, LogLevel level)

Description

Checks whether logs of the specified service domain, tag, and level can be printed.

Since: 8

Parameters

NameDescription
unsigned int domainService domain. Its value is a hexadecimal integer ranging from 0x0 to 0xFFFF. If the value exceeds the range, logs cannot be printed.
const char *tagLog tag, which is a string used to identify the class, file, or service. A tag can contain a maximum of 31 bytes. If a tag exceeds this limit, it will be truncated. Chinese characters are not recommended because garbled characters or alignment problems may occur.
LogLevel levelLog level. The value can be LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, and LOG_FATAL.

Returns

TypeDescription
booltrue if the specified logs can be output; false otherwise.

OH_LOG_DEBUG()

OH_LOG_DEBUG(type, ...)((void)OH_LOG_Print((type), LOG_DEBUG, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))

Description

Indicates DEBUG logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.

Since: 8

Parameters

NameDescription
typeLog type. The third-party application log type is LOG_APP.
fmtFormat string, which is an enhancement of a printf format string and supports the privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier in each parameter.
...Parameter list corresponding to the parameter type in the format string. The number and type of parameters must be mapped onto the identifier in the format string.

See also

OH_LOG_Print

OH_LOG_INFO()

OH_LOG_INFO(type, ...)((void)OH_LOG_Print((type), LOG_INFO, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))

Description

Indicates INFO logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.

Since: 8

Parameters

NameDescription
typeLog type. The type for third-party applications is defined by LOG_APP.
fmtFormat string, which is an enhancement of a printf format string and supports the privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier in each parameter.
...Parameter list corresponding to the parameter type in the format string. The number and type of parameters must be mapped onto the identifier in the format string.

See also

OH_LOG_Print

OH_LOG_WARN()

OH_LOG_WARN(type, ...)((void)OH_LOG_Print((type), LOG_WARN, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))

Description

Indicates WARN logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.

Since: 8

Parameters

NameDescription
typeLog type. The third-party application log type is LOG_APP.
fmtFormat string, which is an enhancement of a printf format string and supports the privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier in each parameter.
...Parameter list corresponding to the parameter type in the format string. The number and type of parameters must be mapped onto the identifier in the format string.

See also

OH_LOG_Print

OH_LOG_ERROR()

OH_LOG_ERROR(type, ...)((void)OH_LOG_Print((type), LOG_ERROR, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))

Description

Indicates ERROR logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.

Since: 8

Parameters

NameDescription
typeLog type. The third-party application log type is LOG_APP.
fmtFormat string, which is an enhancement of a printf format string and supports the privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier in each parameter.
...Parameter list corresponding to the parameter type in the format string. The number and type of parameters must be mapped onto the identifier in the format string.

See also

OH_LOG_Print

OH_LOG_FATAL()

OH_LOG_FATAL(type, ...)((void)OH_LOG_Print((type), LOG_FATAL, LOG_DOMAIN, LOG_TAG, __VA_ARGS__))

Description

Indicates FATAL logs. This is a function-like macro. Before using this macro, define LOG_DOMAIN and LOG_TAG at the beginning of the source file.

Since: 8

Parameters

NameDescription
typeLog type. The third-party application log type is LOG_APP.
fmtFormat string, which is an enhancement of a printf format string and supports the privacy identifier. Specifically, {public} or {private} is added between the % character and the format specifier in each parameter.
...Parameter list corresponding to the parameter type in the format string. The number and type of parameters must be mapped onto the identifier in the format string.

See also

OH_LOG_Print

LogCallback()

typedef void (*LogCallback)(const LogType type, const LogLevel level, const unsigned int domain, const char *tag, const char *msg)

Description

Customizes the processing of HiLog logs in the callback.

Since: 11

Parameters

NameDescription
const LogType typeLog type. The third-party application log type is LOG_APP.
const LogLevel levelLog level. The value can be LOG_DEBUG, LOG_INFO, LOG_WARN, LOG_ERROR, and LOG_FATAL.
const unsigned int domainService domain. Its value is a hexadecimal integer ranging from 0x0 to 0xFFFF. If the value exceeds the range, logs cannot be printed.
const char *tagLog tag, which is a string used to identify the class, file, or service. A tag can contain a maximum of 31 bytes. If a tag exceeds this limit, it will be truncated. Chinese characters are not recommended because garbled characters or alignment problems may occur.
const char *msgLog content, which is made up of formatted log strings.

OH_LOG_SetCallback()

void OH_LOG_SetCallback(LogCallback callback)

Description

Registers a callback function. After this function is called, the custom callback can receive all HiLog logs of the current process.
Note that whether this API is called or not, it does not change the default log processing of the current process.

Since: 11

Parameters

NameDescription
LogCallback callbackCustom callback function. If processing of logs is not needed, a null pointer can be transferred.

OH_LOG_SetMinLogLevel()

void OH_LOG_SetMinLogLevel(LogLevel level)

Description

Sets the minimum log level.

NOTE

  1. If the set log level is lower than the global log level, the setting does not take effect.

  2. This function does not take effect for debug applications.

Since: 15

Parameters

NameDescription
LogLevel levelLog level.

OH_LOG_SetLogLevel()

void OH_LOG_SetLogLevel(LogLevel level, PreferStrategy prefer)

Description

Sets the minimum log level of the current application process.

You can configure different preference strategies using the prefer parameter. The PREFER_CLOSE_LOG strategy has the same effect as the OH_LOG_SetMinLogLevel() function.

Note: This function does not take effect for debug applications.

Since: 21

Parameters

NameDescription
LogLevel levelLog level.
PreferStrategy preferPreference strategy.

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 js-apis-hiviewdfx-FaultLogExtensionAbility

openharmony 鸿蒙 errorcode-hisysevent-sys

openharmony 鸿蒙 capi-hitrace-hitraceid

openharmony 鸿蒙 capi-hidebug-hidebug-threadcpuusage

openharmony 鸿蒙 js-apis-loglibrary-sys

openharmony 鸿蒙 capi-hiappevent-h

openharmony 鸿蒙 capi-hidebug-hidebug-jsstackframe

openharmony 鸿蒙 capi-hitrace

openharmony 鸿蒙 capi-hiappevent-param-h

openharmony 鸿蒙 capi-hidebug-hidebug-stackframe

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/zFlIu8km