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