# Console
The **console** module provides a simple debugging console, which is similar to the JavaScript console provided by the browser.
> **NOTE**
>
> The initial APIs of this module are supported since API version 3. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## console.debug
debug(message: string, ...arguments: any[]): void
Prints debugging information in formatted output mode.
Since API version 9, this API is supported in ArkTS widgets.
**System capability**: SystemCapability.ArkUI.ArkUI.Full
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| message | string | Yes | Text to be printed.|
| arguments | any[] | No | Arguments in the message or other information to be printed.|
**Example**
```js
const number = 5;
console.debug('count: %d', number); // Print the debugging information with arguments in the message replaced.
// count: 5
console.debug('count:', number); // Print the message and other information.
// count: 5
console.debug('count:'); // Print the message only.
// count:
```
## console.log
log(message: string, ...arguments: any[]): void
Prints log information in formatted output mode.
Since API version 9, this API is supported in ArkTS widgets.
**System capability**: SystemCapability.ArkUI.ArkUI.Full
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| message | string | Yes | Text to be printed.|
| arguments | any[] | No |Arguments in the message or other information to be printed.|
**Example**
```js
const number = 5;
console.log('count: %d', number); // Print the log information with arguments in the message replaced.
// count: 5
console.log('count:', number); // Print the message and other information.
// count: 5
console.log('count:'); // Print the message only.
// count:
```
## console.info
info(message: string, ...arguments: any[]): void
Prints log information in formatted output mode. This API is the alias of **console.log ()**.
Since API version 9, this API is supported in ArkTS widgets.
**System capability**: SystemCapability.ArkUI.ArkUI.Full
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| message | string | Yes | Text to be printed.|
| arguments | any[] | No | Arguments in the message or other information to be printed.|
**Example**
```js
const number = 5;
console.info('count: %d', number); // Print the log information with arguments in the message replaced.
// count: 5
console.info('count:', number); // Print the message and other information.
// count: 5
console.info('count:'); // Print the message only.
// count:
```
## console.warn
warn(message: string, ...arguments: any[]): void
Prints warning information in formatted output mode.
Since API version 9, this API is supported in ArkTS widgets.
**System capability**: SystemCapability.ArkUI.ArkUI.Full
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| message | string | Yes | Warning information to be printed.|
| arguments | any[] | No | Arguments in the message or other information to be printed.|
**Example**
```js
const str = "name should be string";
console.warn('warn: %d', str); // Print the warning information with arguments in the message replaced.
// warn: name should be string
console.warn('warn:', str); // Print the message and other information.
// warn: name should be string
console.warn('warn:'); // Print the message only.
// warn:
```
## console.error
error(message: string, ...arguments: any[]): void
Prints error information in formatted output mode.
Since API version 9, this API is supported in ArkTS widgets.
**System capability**: SystemCapability.ArkUI.ArkUI.Full
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| message | string | Yes | Error information to be printed.|
| arguments | any[] | No | Arguments in the message or other information to be printed.|
**Example**
```js
const str = "value is not defined";
console.error('error: %d', str); // Print the error information with arguments in the message replaced.
// error: value is not defined
console.error('error:', str); // Print the message and other information.
// error: value is not defined
console.error('error:'); // Print the message only.
// error:
```
## console.assert10+
assert(value?: Object, ...arguments: Object[]): void
Prints assertion information.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| value | Object | No | Result value. If **value** is **false** or left blank, the output starting with "Assertion failed" is printed. If **value** is **true**, no information is printed.|
| arguments | Object | No | Other information to be printed when **value** is **false**. If this parameter is left blank, other information is not printed.|
**Example**
```js
console.assert(true, 'does nothing'); // Do not print error information as value is true.
console.assert(2% 1 == 0,'does nothing'); // Do not print error information as value is true.
console.assert(false, 'console %s work', 'didn\'t');
// Assertion failed: console didn't work
console.assert();
// Assertion failed
```
## console.count10+
count(label?: string): void
Maintains an internal counter. When this counter is invoked, its label name and the corresponding call count are printed.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| label | string | No | Counter label name. The default value is **default**.|
**Example**
```js
console.count()
// default: 1
console.count('default')
// default: 2
console.count('abc')
// abc: 1
console.count('xyz')
// xyz: 1
console.count('abc')
// abc: 2
console.count()
// default: 3
```
## console.countReset10+
countReset(label?: string): void
Resets a counter based on the specified label name.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| label | string | No | Counter label name. The default value is **default**.|
**Example**
```js
console.count('abc');
// abc: 1
console.countReset('abc');
console.count('abc');
// abc: 1
```
## console.dir10+
dir(dir?: Object): void
Prints content of the specified object.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| dir | Object | No | Object whose content needs to be printed. If this parameter is left blank, no information is printed.|
**Example**
```js
class bar {
baz: boolean = true;
}
let b: bar = {baz: true}
class foo{
bar: bar = b;
}
let c: foo = {bar: b}
class c1{
foo: foo = c;
}
let a: c1 = {foo: c}
console.dir(a);
// Object: {"foo":{"bar":{"baz":true}}}
console.dir(); // No information is printed.
```
## console.dirxml10+
dirxml(...arguments: Object[]): void
Displays an interactive tree of the descendant elements of the specified XML element. This API is implemented by calling **console.log()** internally. It does not produce any XML elements. The usage method is the same as that of **console.log()**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| arguments | Object | Yes | Information to be printed.|
**Example**
```js
const number = 5;
console.dirxml('count: %d', number);
// count: 5
console.dirxml('count:', number);
// count: 5
console.dirxml('count:');
// count:
```
## console.group10+
group(...arguments: Object[]): void
Increases the indentation of subsequent lines by two spaces.
If the information to be printed is provided, the information is printed without extra indentation.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| arguments | Object | No | Information to be printed.|
**Example**
```js
console.log("outter");
// outter
console.group();
console.log("level 1");
// level 1
console.group("in level1");
// in level1
console.log("level 2");
// level 2
```
## console.groupCollapsed10+
groupCollapsed(...arguments: Object[]): void
Creates a new inline group in collapsed mode. The usage and function of this API are the same as those of **console.group()**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| arguments | Object | No | Information to be printed.|
**Example**
```js
console.groupCollapsed("outter");
// outter
console.groupCollapsed();
console.log("level 1");
// level 1
console.groupCollapsed("in level1");
// in level1
console.log("level 2");
// level 2
```
## console.groupEnd10+
groupEnd(): void
Reduces the indentation of subsequent lines by two spaces.
**System capability**: SystemCapability.Utils.Lang
**Example**
```js
console.log("outter");
// outter
console.group();
console.log("level 1");
// level 1
console.groupEnd();
console.log("outter");
// outter
```
## console.table10+
table(tableData?: Object): void
Prints data in a table.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| tableData | Object | No | Data to be printed in a table. If this parameter is left blank, no information is printed.|
**Example**
```js
console.table([1, 2, 3]);
// ┌─────────┬────────┐
// │ (index) │ Values │
// ├─────────┼────────┤
// │ 0 │ 1 │
// │ 1 │ 2 │
// │ 2 │ 3 │
// └─────────┴────────┘
console.table({ a: [1, 2, 3, 4, 5], b: 5, c: { e: 5 } });
// ┌─────────┬───┬───┬───┬───┬───┬───┬────────┐
// │ (index) │ 0 │ 1 │ 2 │ 3 │ 4 │ e │ Values │
// ├─────────┼───┼───┼───┼───┼───┼───┼────────┤
// │ a │ 1 │ 2 │ 3 │ 4 │ 5 │ │ │
// │ b │ │ │ │ │ │ │ 5 │
// │ c │ │ │ │ │ │ 5 │ │
// └─────────┴───┴───┴───┴───┴───┴───┴────────┘
```
## console.time10+
time(label?: string): void
Starts a timer to track the duration of an operation. You can use **console.timeEnd()** to close the timer and print the elapsed time (in ms).
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| label | string | No | Timer label. The default value is **default**.|
**Example**
```js
console.time('abc');
```
## console.timeEnd10+
timeEnd(label?: string): void
Stops the timer started by calling **console.time()** and prints the elapsed time (in ms).
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| label | string | No | Timer label. The default value is **default**.|
**Example**
```js
console.time('abc');
console.timeEnd('abc');
// abc: 225.438ms
```
## console.timeLog10+
timeLog(label?: string, ...arguments: Object[]): void
Prints the elapsed time and other data parameters for the timer started by **console.time()**.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| label | string | No | Timer label. The default value is **default**.|
| arguments | Object | No | Logs to be printed.|
**Example**
```js
console.time('timer1');
console.timeLog('timer1', 17);
// timer1: 365.227ms 17
console.timeEnd('timer1');
// timer1: 513.22ms
```
## console.trace10+
trace(...arguments: Object[]): void
Creates a stack trace.
**System capability**: SystemCapability.Utils.Lang
**Parameters**
| Name | Type | Mandatory | Description |
| ------- | ------ | ---- | ----------- |
| arguments | Object | No | Logs to be printed. If this parameter is left blank, only stack information is printed.|
**Example**
```js
console.trace();
// Trace:
// xxxxxxxxxx (current stack information)
console.trace("Show the trace");
// Trace: Show the trace
// xxxxxxxxxx (current stack information)
```