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```