1# @ohos.hilog (HiLog日志打印) 2 3hilog日志系统,使应用/服务可以按照指定级别、标识和格式字符串输出日志内容,帮助开发者了解应用/服务的运行状态,更好地调试程序。 4 5> **说明:** 6> 7> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## 导入模块 10 11```js 12import hilog from '@ohos.hilog'; 13``` 14 15## hilog.isLoggable 16 17isLoggable(domain: number, tag: string, level: LogLevel) : boolean 18 19在打印日志前调用该接口,用于检查指定领域标识、日志标识和级别的日志是否可以打印。 20 21**系统能力:** SystemCapability.HiviewDFX.HiLog 22 23**参数:** 24 25| 参数名 | 类型 | 必填 | 说明 | 26| ------ | --------------------- | ---- | ------------------------------------------------------------ | 27| domain | number | 是 | 日志对应的领域标识,范围是0x0~0xFFFF。<br/>建议开发者在应用内根据需要自定义划分。 | 28| tag | string | 是 | 指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。 | 29| level | [LogLevel](#loglevel) | 是 | 日志级别。 | 30 31**返回值:** 32 33| 类型 | 说明 | 34| ------- | ------------------------------------------------------------ | 35| boolean | 如果返回true,则该领域标识、日志标识和级别的日志可以打印,否则不能打印。 | 36 37**示例:** 38 39```js 40hilog.isLoggable(0x0001, "testTag", hilog.LogLevel.INFO); 41``` 42 43## LogLevel 44 45日志级别。 46 47**系统能力:** SystemCapability.HiviewDFX.HiLog 48 49| 名称 | 值 | 说明 | 50| ----- | ------ | ------------------------------------------------------------ | 51| DEBUG | 3 | 详细的流程记录,通过该级别的日志可以更详细地分析业务流程和定位分析问题。 | 52| INFO | 4 | 用于记录业务关键流程节点,可以还原业务的主要运行过程;<br/>用于记录可预料的非正常情况信息,如无网络信号、登录失败等。<br/>这些日志都应该由该业务内处于支配地位的模块来记录,避免在多个被调用的模块或低级函数中重复记录。 | 53| WARN | 5 | 用于记录较为严重的非预期情况,但是对用户影响不大,应用可以自动恢复或通过简单的操作就可以恢复的问题。 | 54| ERROR | 6 | 应用发生了错误,该错误会影响功能的正常运行或用户的正常使用,可以恢复但恢复代价较高,如重置数据等。 | 55| FATAL | 7 | 重大致命异常,表明应用即将崩溃,故障无法恢复。 | 56 57## hilog.debug 58 59debug(domain: number, tag: string, format: string, ...args: any[]) : void 60 61打印DEBUG级别的日志。 62 63DEBUG级别的日志在正式发布版本中默认不被打印,只有在调试版本或打开调试开关的情况下才会打印。 64 65**系统能力:** SystemCapability.HiviewDFX.HiLog 66 67**参数:** 68 69| 参数名 | 类型 | 必填 | 说明 | 70| ------ | ------ | ---- | ------------------------------------------------------------ | 71| domain | number | 是 | 日志对应的领域标识,范围是0x0~0xFFFF。<br/>建议开发者在应用内根据需要自定义划分。 | 72| tag | string | 是 | 指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。 | 73| format | string | 是 | 格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。<br>隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以\<private>过滤回显。 | 74| args | any[] | 是 | 与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。 | 75 76**示例:** 77 78输出一条DEBUG信息,格式字符串为`"%{public}s World %{private}d"`。其中变参`%{public}s`为明文显示的字符串;`%{private}d`为隐私的整型数。 79 80```js 81hilog.debug(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3); 82``` 83 84字符串`"hello"`填入`%{public}s`,整型数`3`填入`%{private}d`,输出日志: 85 86``` 8708-05 12:21:47.579 2695-2703/com.example.myapplication D 00001/testTag: hello World <private> 88``` 89 90## hilog.info 91 92info(domain: number, tag: string, format: string, ...args: any[]) : void 93 94打印INFO级别的日志。 95 96**系统能力:** SystemCapability.HiviewDFX.HiLog 97 98**参数:** 99 100| 参数名 | 类型 | 必填 | 说明 | 101| ------ | ------ | ---- | ------------------------------------------------------------ | 102| domain | number | 是 | 日志对应的领域标识,范围是0x0~0xFFFF。<br/>建议开发者在应用内根据需要自定义划分。 | 103| tag | string | 是 | 指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。 | 104| format | string | 是 | 格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。<br/>隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以\<private>过滤回显。 | 105| args | any[] | 是 | 与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。 | 106 107**示例:** 108 109输出一条INFO信息,格式字符串为`"%{public}s World %{private}d"`。其中变参`%{public}s`为明文显示的字符串;`%{private}d`为隐私的整型数。 110 111```js 112hilog.info(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3); 113``` 114 115字符串`"hello"`填入`%{public}s`,整型数`3`填入`%{private}d`,输出日志: 116 117``` 11808-05 12:21:47.579 2695-2703/com.example.myapplication I 00001/testTag: hello World <private> 119``` 120 121## hilog.warn 122 123warn(domain: number, tag: string, format: string, ...args: any[]) : void 124 125打印WARN级别的日志。 126 127**系统能力:** SystemCapability.HiviewDFX.HiLog 128 129**参数:** 130 131| 参数名 | 类型 | 必填 | 说明 | 132| ------ | ------ | ---- | ------------------------------------------------------------ | 133| domain | number | 是 | 日志对应的领域标识,范围是0x0~0xFFFF。<br/>建议开发者在应用内根据需要自定义划分。 | 134| tag | string | 是 | 指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。 | 135| format | string | 是 | 格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。<br/>隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以\<private>过滤回显。 | 136| args | any[] | 是 | 与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。 | 137 138**示例:** 139 140输出一条WARN信息,格式字符串为`"%{public}s World %{private}d"`。其中变参`%{public}s`为明文显示的字符串;`%{private}d`为隐私的整型数。 141 142```js 143hilog.warn(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3); 144``` 145 146字符串`"hello"`填入`%{public}s`,整型数`3`填入`%{private}d`,输出日志: 147 148``` 14908-05 12:21:47.579 2695-2703/com.example.myapplication W 00001/testTag: hello World <private> 150``` 151 152## hilog.error 153 154error(domain: number, tag: string, format: string, ...args: any[]) : void 155 156打印ERROR级别的日志。 157 158**系统能力:** SystemCapability.HiviewDFX.HiLog 159 160**参数:** 161 162| 参数名 | 类型 | 必填 | 说明 | 163| ------ | ------ | ---- | ------------------------------------------------------------ | 164| domain | number | 是 | 日志对应的领域标识,范围是0x0~0xFFFF。<br/>建议开发者在应用内根据需要自定义划分。 | 165| tag | string | 是 | 指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。 | 166| format | string | 是 | 格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。<br/>隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以\<private>过滤回显。 | 167| args | any[] | 是 | 与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。 | 168 169**示例:** 170 171输出一条ERROR信息,格式字符串为`"%{public}s World %{private}d"`。其中变参`%{public}s`为明文显示的字符串;`%{private}d`为隐私的整型数。 172 173```js 174hilog.error(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3); 175``` 176 177字符串`"hello"`填入`%{public}s`,整型数`3`填入`%{private}d`,输出日志: 178 179``` 18008-05 12:21:47.579 2695-2703/com.example.myapplication E 00001/testTag: hello World <private> 181``` 182 183## hilog.fatal 184 185fatal(domain: number, tag: string, format: string, ...args: any[]) : void 186 187打印FATAL级别的日志。 188 189**系统能力:** SystemCapability.HiviewDFX.HiLog 190 191**参数:** 192 193| 参数名 | 类型 | 必填 | 说明 | 194| ------ | ------ | ---- | ------------------------------------------------------------ | 195| domain | number | 是 | 日志对应的领域标识,范围是0x0~0xFFFF。<br/>建议开发者在应用内根据需要自定义划分。 | 196| tag | string | 是 | 指定日志标识,可以为任意字符串,建议用于标识调用所在的类或者业务行为。 | 197| format | string | 是 | 格式字符串,用于日志的格式化输出。格式字符串中可以设置多个参数,参数需要包含参数类型、隐私标识。<br/>隐私标识分为{public}和{private},缺省为{private}。标识{public}的内容明文输出,标识{private}的内容以\<private>过滤回显。 | 198| args | any[] | 是 | 与格式字符串format对应的可变长度参数列表。参数数目、参数类型必须与格式字符串中的标识一一对应。 | 199 200**示例:** 201 202输出一条FATAL信息,格式字符串为`"%{public}s World %{private}d"`。其中变参`%{public}s`为明文显示的字符串;`%{private}d`为隐私的整型数。 203 204```js 205hilog.fatal(0x0001, "testTag", "%{public}s World %{private}d", "hello", 3); 206``` 207 208字符串`"hello"`填入`%{public}s`,整型数`3`填入`%{private}d`,输出日志: 209 210``` 21108-05 12:21:47.579 2695-2703/com.example.myapplication F 00001/testTag: hello World <private> 212```