1# Console (控制台) 2 3本模块提供了一个简单的调试控制台,类似于浏览器提供的JavaScript控制台机制。 4 5> **说明:** 6> 7> 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 8 9## console.debug 10 11debug(message: string, ...arguments: any[]): void 12 13以格式化输出方式打印调试信息。 14 15从API version 9开始,该接口支持在ArkTS卡片中使用。 16 17**系统能力:** SystemCapability.ArkUI.ArkUI.Full 18 19**参数:** 20 21| 参数名 | 类型 | 必填 | 说明 | 22| ------- | ------ | ---- | ----------- | 23| message | string | 是 | 表示要打印的文本信息。 | 24| arguments | any[] | 否 | 表示其余要打印的信息或message的替换值。 | 25 26**示例:** 27 28```js 29const number = 5; 30console.debug('count: %d', number); // 格式化输出替换message中的文本。 31// count: 5 32console.debug('count:', number); // 打印message以及其余信息 33// count: 5 34console.debug('count:'); // 仅打印message 35// count: 36``` 37 38## console.log 39 40log(message: string, ...arguments: any[]): void 41 42以格式化输出方式打印日志信息。 43 44从API version 9开始,该接口支持在ArkTS卡片中使用。 45 46**系统能力:** SystemCapability.ArkUI.ArkUI.Full 47 48**参数:** 49 50| 参数名 | 类型 | 必填 | 说明 | 51| ------- | ------ | ---- | ----------- | 52| message | string | 是 | 表示要打印的文本信息。 | 53| arguments | any[] | 否 |表示其余要打印的信息或message的替换值。 | 54 55**示例:** 56 57```js 58const number = 5; 59console.log('count: %d', number); // 格式化输出替换message中的文本。 60// count: 5 61console.log('count:', number); // 打印message以及其余信息 62// count: 5 63console.log('count:'); // 仅打印message 64// count: 65``` 66 67## console.info 68 69info(message: string, ...arguments: any[]): void 70 71以格式化输出方式打印日志信息。(console.log()的别名)。 72 73从API version 9开始,该接口支持在ArkTS卡片中使用。 74 75**系统能力:** SystemCapability.ArkUI.ArkUI.Full 76 77**参数:** 78 79| 参数名 | 类型 | 必填 | 说明 | 80| ------- | ------ | ---- | ----------- | 81| message | string | 是 | 表示要打印的文本信息。 | 82| arguments | any[] | 否 | 表示其余要打印的信息或message的替换值。 | 83 84**示例:** 85 86```js 87const number = 5; 88console.info('count: %d', number); // 格式化输出替换message中的文本。 89// count: 5 90console.info('count:', number); // 打印message以及其余信息 91// count: 5 92console.info('count:'); // 仅打印message 93// count: 94``` 95 96## console.warn 97 98warn(message: string, ...arguments: any[]): void 99 100以格式化输出方式打印警告信息。 101 102从API version 9开始,该接口支持在ArkTS卡片中使用。 103 104**系统能力:** SystemCapability.ArkUI.ArkUI.Full 105 106**参数:** 107 108| 参数名 | 类型 | 必填 | 说明 | 109| ------- | ------ | ---- | ----------- | 110| message | string | 是 | 表示要打印的警告信息。 | 111| arguments | any[] | 否 | 表示其余要打印的信息或message的替换值。 | 112 113**示例:** 114 115```js 116const str = "name should be string"; 117console.warn('warn: %d', str); // 格式化输出替换message中的文本。 118// warn: name should be string 119console.warn('warn:', str); // 打印message以及其余信息 120// warn: name should be string 121console.warn('warn:'); // 仅打印message 122// warn: 123``` 124 125## console.error 126 127error(message: string, ...arguments: any[]): void 128 129以格式化输出方式打印错误信息。 130 131从API version 9开始,该接口支持在ArkTS卡片中使用。 132 133**系统能力:** SystemCapability.ArkUI.ArkUI.Full 134 135**参数:** 136 137| 参数名 | 类型 | 必填 | 说明 | 138| ------- | ------ | ---- | ----------- | 139| message | string | 是 | 表示要打印的错误信息。 | 140| arguments | any[] | 否 | 表示其余要打印的信息或message的替换值。 | 141 142 143**示例:** 144 145```js 146const str = "value is not defined"; 147console.error('error: %d', str); // 格式化输出替换message中的文本。 148// error: value is not defined 149console.error('error:', str); // 打印message以及其余信息 150// error: value is not defined 151console.error('error:'); // 仅打印message 152// error: 153``` 154 155## console.assert<sup>10+</sup> 156 157assert(value?: Object, ...arguments: Object[]): void 158 159断言打印。 160 161**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 162 163**系统能力:** SystemCapability.Utils.Lang 164 165**参数:** 166 167| 参数名 | 类型 | 必填 | 说明 | 168| ------- | ------ | ---- | ----------- | 169| value | Object | 否 | 语句结果值。若value为假(false)或者省略,则输出以"Assertion failed"开头。如果 value 为真值(true),则无打印。| 170| arguments | Object | 否 | value为假(false)的后续错误消息打印。省略则不打印。| 171 172**示例:** 173 174```js 175console.assert(true, 'does nothing'); // 表达式结果值为true, 无打印。 176console.assert(2 % 1 == 0, 'does nothing'); // 表达式结果值为true, 无打印。 177 178console.assert(false, 'console %s work', 'didn\'t'); 179// Assertion failed: console didn't work 180 181console.assert(); 182// Assertion failed 183``` 184 185## console.count<sup>10+</sup> 186 187count(label?: string): void 188 189维护一个内部计数器,调用时,打印此标签名以及对应的计数次数。 190 191**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 192 193**系统能力:** SystemCapability.Utils.Lang 194 195**参数:** 196 197| 参数名 | 类型 | 必填 | 说明 | 198| ------- | ------ | ---- | ----------- | 199| label | string | 否 | 计数器标签名。默认值为'default'。| 200 201 202**示例:** 203 204```js 205console.count() 206// default: 1 207console.count('default') 208// default: 2 209console.count('abc') 210// abc: 1 211console.count('xyz') 212// xyz: 1 213console.count('abc') 214// abc: 2 215console.count() 216// default: 3 217``` 218 219## console.countReset<sup>10+</sup> 220 221countReset(label?: string): void 222 223清除指定标签名的计数。 224 225**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 226 227**系统能力:** SystemCapability.Utils.Lang 228 229**参数:** 230 231| 参数名 | 类型 | 必填 | 说明 | 232| ------- | ------ | ---- | ----------- | 233| label | string | 否 | 计数器标签名。默认值为'default'。| 234 235**示例:** 236 237```js 238console.count('abc'); 239// abc: 1 240console.countReset('abc'); 241console.count('abc'); 242// abc: 1 243``` 244 245## console.dir<sup>10+</sup> 246 247dir(dir?: Object): void 248 249打印对象内容。 250 251**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 252 253**系统能力:** SystemCapability.Utils.Lang 254 255**参数:** 256 257| 参数名 | 类型 | 必填 | 说明 | 258| ------- | ------ | ---- | ----------- | 259| dir | Object | 否 | 需要打印内容的对象。省略则无任何打印。| 260 261 262**示例:** 263 264```js 265class bar { 266 baz: boolean = true; 267} 268let b: bar = {baz: true} 269class foo{ 270 bar: bar = b; 271} 272let c: foo = {bar: b} 273class c1{ 274 foo: foo = c; 275} 276let a: c1 = {foo: c} 277console.dir(a); 278// Object: {"foo":{"bar":{"baz":true}}} 279 280console.dir(); // 无打印 281``` 282 283 284## console.dirxml<sup>10+</sup> 285 286dirxml(...arguments: Object[]): void 287 288此方法通过内部调用console.log()实现。此方法不会产生任何 XML 格式。使用方法与console.log()一致。 289 290**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 291 292**系统能力:** SystemCapability.Utils.Lang 293 294**参数:** 295 296| 参数名 | 类型 | 必填 | 说明 | 297| ------- | ------ | ---- | ----------- | 298| arguments | Object | 是 | 要打印的信息。 | 299 300**示例:** 301 302```js 303const number = 5; 304console.dirxml('count: %d', number); 305// count: 5 306console.dirxml('count:', number); 307// count: 5 308console.dirxml('count:'); 309// count: 310``` 311 312## console.group<sup>10+</sup> 313 314group(...arguments: Object[]): void 315 316默认将后续行的缩进增加两个空格。 317如果提供需要打印的信息,则首先打印信息,没有额外的缩进。 318 319**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 320 321**系统能力:** SystemCapability.Utils.Lang 322 323**参数:** 324 325| 参数名 | 类型 | 必填 | 说明 | 326| ------- | ------ | ---- | ----------- | 327| arguments | Object | 否 | 要打印的信息。 | 328 329**示例:** 330 331```js 332console.log("outter"); 333// outter 334console.group(); 335console.log("level 1"); 336// level 1 337console.group("in level1"); 338// in level1 339console.log("level 2"); 340// level 2 341``` 342 343 344## console.groupCollapsed<sup>10+</sup> 345 346groupCollapsed(...arguments: Object[]): void 347 348使用与功能同console.group()一致。 349 350**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 351 352**系统能力:** SystemCapability.Utils.Lang 353 354**参数:** 355 356| 参数名 | 类型 | 必填 | 说明 | 357| ------- | ------ | ---- | ----------- | 358| arguments | Object | 否 | 要打印的信息。| 359 360 361**示例:** 362 363```js 364console.groupCollapsed("outter"); 365// outter 366console.groupCollapsed(); 367console.log("level 1"); 368// level 1 369console.groupCollapsed("in level1"); 370// in level1 371console.log("level 2"); 372// level 2 373``` 374 375## console.groupEnd<sup>10+</sup> 376 377groupEnd(): void 378 379将后续行的缩进减少两个空格。 380 381**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 382 383**系统能力:** SystemCapability.Utils.Lang 384 385 386**示例:** 387 388```js 389console.log("outter"); 390// outter 391console.group(); 392console.log("level 1"); 393// level 1 394console.groupEnd(); 395console.log("outter"); 396// outter 397``` 398 399 400## console.table<sup>10+</sup> 401 402table(tableData?: Object): void 403 404以表格形式打印数据。 405 406**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 407 408**系统能力:** SystemCapability.Utils.Lang 409 410**参数:** 411 412| 参数名 | 类型 | 必填 | 说明 | 413| ------- | ------ | ---- | ----------- | 414| tableData | Object | 否 | 要打印为表格形式的对象。省略则无任何打印。 | 415 416**示例:** 417 418```js 419console.table([1, 2, 3]); 420// ┌─────────┬────────┐ 421// │ (index) │ Values │ 422// ├─────────┼────────┤ 423// │ 0 │ 1 │ 424// │ 1 │ 2 │ 425// │ 2 │ 3 │ 426// └─────────┴────────┘ 427 428console.table({ a: [1, 2, 3, 4, 5], b: 5, c: { e: 5 } }); 429 430// ┌─────────┬───┬───┬───┬───┬───┬───┬────────┐ 431// │ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ e │ Values │ 432// ├─────────┼───┼───┼───┼───┼───┼───┼────────┤ 433// │ a │ 1 │ 2 │ 3 │ 4 │ 5 │ │ │ 434// │ b │ │ │ │ │ │ │ 5 │ 435// │ c │ │ │ │ │ │ 5 │ │ 436// └─────────┴───┴───┴───┴───┴───┴───┴────────┘ 437``` 438 439## console.time<sup>10+</sup> 440 441time(label?: string): void 442 443启动可用于计算操作持续时间的计时器。可使用console.timeEnd()关闭计时器并打印经过的时间(单位:ms)。 444 445**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 446 447**系统能力:** SystemCapability.Utils.Lang 448 449**参数:** 450 451| 参数名 | 类型 | 必填 | 说明 | 452| ------- | ------ | ---- | ----------- | 453| label | string | 否 | 计时器标识。默认值为'default'。 | 454 455**示例:** 456 457```js 458console.time('abc'); 459``` 460 461## console.timeEnd<sup>10+</sup> 462 463timeEnd(label?: string): void 464 465停止之前通过调用 console.time() 启动的计时器并将打印经过的时间(单位:ms)。 466 467**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 468 469**系统能力:** SystemCapability.Utils.Lang 470 471**参数:** 472 473| 参数名 | 类型 | 必填 | 说明 | 474| ------- | ------ | ---- | ----------- | 475| label | string | 否 | 计时器标识。默认值为'default' | 476 477**示例:** 478 479```js 480console.time('abc'); 481console.timeEnd('abc'); 482// abc: 225.438ms 483``` 484 485## console.timeLog<sup>10+</sup> 486 487timeLog(label?: string, ...arguments: Object[]): void 488 489对于先前通过调用 console.time() 启动的计时器,打印经过时间和其他data参数。 490 491**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 492 493**系统能力:** SystemCapability.Utils.Lang 494 495**参数:** 496 497| 参数名 | 类型 | 必填 | 说明 | 498| ------- | ------ | ---- | ----------- | 499| label | string | 否 | 计时器标识。默认值为'default' | 500| arguments | Object | 否 | 需要打印的其他日志。 | 501 502**示例:** 503 504```js 505console.time('timer1'); 506console.timeLog('timer1', 17); 507// timer1: 365.227ms 17 508console.timeEnd('timer1'); 509// timer1: 513.22ms 510``` 511 512## console.trace<sup>10+</sup> 513 514static trace(...arguments: Object[]): void 515 516打印当前堆栈。 517 518**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 519 520**系统能力:** SystemCapability.Utils.Lang 521 522**参数:** 523 524| 参数名 | 类型 | 必填 | 说明 | 525| ------- | ------ | ---- | ----------- | 526| arguments | Object | 否 | 需要打印的其他日志。省略则仅打印堆栈信息。| 527 528**示例:** 529 530```js 531console.trace(); 532// Trace: 533// xxxxxxxxxx(当前堆栈信息) 534console.trace("Show the trace"); 535// Trace: Show the trace 536// xxxxxxxxxx(当前堆栈信息) 537``` 538 539## console.traceHybridStack<sup>12+</sup> 540 541static traceHybridStack(): void 542 543在主线程/worker线程中可打印当前线程混合堆栈信息。 544 545**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。 546 547**系统能力:** SystemCapability.Utils.Lang 548 549**示例:** 550 551```ts 552console.traceHybridStack(); 553// TraceHybridStack: 554// xxxxxxxxxx(当前线程混合堆栈信息) 555```