- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲(Buffer)
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入 Node环境
- 子进程(Child processes)
- 集群(Cluster)
- 命令行选项
- 控制台(Console)
- 核心包(Corepack)
- 加密(Crypto)
- 调试器(Debugger)
- 已弃用的 API
- 诊断通道(Diagnostics Channel)
- 域名系统(DNS)
- 域(Domain)
- 错误(Errors)
- 事件(Events)
- 文件系统(File system)
- 全局变量(Globals)
- HTTP
- HTTP/2
- HTTPS
- 检查器(Inspector)
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:packages 模块
- 网络(Net)
- 系统(OS)
- 路径(Path)
- 性能挂钩(Performance hooks)
- 性能挂钩(Permissions)
- 进程(Process)
- Punycode 国际化域名编码
- 查询字符串(Query strings)
- 命令行库(Readline)
- REPL 交互式编程环境
- 诊断报告
- 单个可执行应用程序
- Stream 流
- 字符串解码器
- 单元测试
- 定时器(Timers)
- 传输层安全/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用程序
- V8
- 虚拟机
- WebAssembly
- Web加密 API(Web Crypto API)
- 网络流 API(Web Streams API)
- 工作线程(Worker threads)
- zlib
Node.js v18.18.2 文档
- Node.js v18.18.2
-
►
目录
- 控制台
- 类:
Console
new Console(stdout[, stderr][, ignoreErrors])
new Console(options)
console.assert(value[, ...message])
console.clear()
console.count([label])
console.countReset([label])
console.debug(data[, ...args])
console.dir(obj[, options])
console.dirxml(...data)
console.error([data][, ...args])
console.group([...label])
console.groupCollapsed()
console.groupEnd()
console.info([data][, ...args])
console.log([data][, ...args])
console.table(tabularData[, properties])
console.time([label])
console.timeEnd([label])
console.timeLog([label][, ...data])
console.trace([message][, ...args])
console.warn([data][, ...args])
- 仅检查器方法
- 类:
- 控制台
-
►
索引
- 断言测试
- 异步上下文跟踪
- 异步钩子
- 缓冲(Buffer)
- C++ 插件
- 使用 Node-API 的 C/C++ 插件
- C++ 嵌入 Node环境
- 子进程(Child processes)
- 集群(Cluster)
- 命令行选项
- 控制台(Console)
- 核心包(Corepack)
- 加密(Crypto)
- 调试器(Debugger)
- 已弃用的 API
- 诊断通道(Diagnostics Channel)
- 域名系统(DNS)
- 域(Domain)
- 错误(Errors)
- 事件(Events)
- 文件系统(File system)
- 全局变量(Globals)
- HTTP
- HTTP/2
- HTTPS
- 检查器(Inspector)
- 国际化
- 模块:CommonJS 模块
- 模块:ECMAScript 模块
- 模块:
node:module
API - 模块:packages 模块
- 网络(Net)
- 系统(OS)
- 路径(Path)
- 性能挂钩(Performance hooks)
- 性能挂钩(Permissions)
- 进程(Process)
- Punycode 国际化域名编码
- 查询字符串(Query strings)
- 命令行库(Readline)
- REPL 交互式编程环境
- 诊断报告
- 单个可执行应用程序
- Stream 流
- 字符串解码器
- 单元测试
- 定时器(Timers)
- 传输层安全/SSL
- 跟踪事件
- TTY
- UDP/数据报
- URL
- 实用程序
- V8
- 虚拟机
- WebAssembly
- Web加密 API(Web Crypto API)
- 网络流 API(Web Streams API)
- 工作线程(Worker threads)
- zlib
- ► 其他版本
- ► 选项
目录
- 控制台
- 类:
Console
new Console(stdout[, stderr][, ignoreErrors])
new Console(options)
console.assert(value[, ...message])
console.clear()
console.count([label])
console.countReset([label])
console.debug(data[, ...args])
console.dir(obj[, options])
console.dirxml(...data)
console.error([data][, ...args])
console.group([...label])
console.groupCollapsed()
console.groupEnd()
console.info([data][, ...args])
console.log([data][, ...args])
console.table(tabularData[, properties])
console.time([label])
console.timeEnd([label])
console.timeLog([label][, ...data])
console.trace([message][, ...args])
console.warn([data][, ...args])
- 仅检查器方法
- 类:
控制台#
源代码: lib/console.js
node:console
模块提供了一个简单的调试控制台,类似于网络浏览器提供的 JavaScript 控制台机制。
该模块导出两个特定组件:
- 具有
console.log()
、console.error()
和console.warn()
等方法的Console
类,可用于写入任何 Node.js 流。 - 配置为写入
process.stdout
和process.stderr
的全局console
实例。无需调用require('node:console')
即可使用 全局console
。
警告:全局控制台对象的方法既不像它们类似的浏览器 API 那样始终同步,也不像所有其他 Node.js 流那样始终异步。有关详细信息,请参阅有关进程 I/O 的注释。
使用全局console
的示例:
console.log('hello world');
// Prints: hello world, to stdout
console.log('hello %s', 'world');
// Prints: hello world, to stdout
console.error(new Error('Whoops, something bad happened'));
// Prints error message and stack trace to stderr:
// Error: Whoops, something bad happened
// at [eval]:5:15
// at Script.runInThisContext (node:vm:132:18)
// at Object.runInThisContext (node:vm:309:38)
// at node:internal/process/execution:77:19
// at [eval]-wrapper:6:22
// at evalScript (node:internal/process/execution:76:60)
// at node:internal/main/eval_string:23:3
const name = 'Will Robinson';
console.warn(`Danger ${name}! Danger!`);
// Prints: Danger Will Robinson! Danger!, to stderr
使用Console
类的示例:
const out = getStreamSomehow();
const err = getStreamSomehow();
const myConsole = new console.Console(out, err);
myConsole.log('hello world');
// Prints: hello world, to out
myConsole.log('hello %s', 'world');
// Prints: hello world, to out
myConsole.error(new Error('Whoops, something bad happened'));
// Prints: [Error: Whoops, something bad happened], to err
const name = 'Will Robinson';
myConsole.warn(`Danger ${name}! Danger!`);
// Prints: Danger Will Robinson! Danger!, to err
类:Console
#
Console
类可用于创建具有可配置输出流的简单记录器,并且可以使用require('node:console').Console
或console.Console
(或其解构对应项)进行访问:
const { Console } = require('node:console');
const { Console } = console;
new Console(stdout[, stderr][, ignoreErrors])
#
new Console(options)
#
options
<对象>stdout
<stream.Writable>stderr
<stream.Writable>ignoreErrors
<boolean>写入底层流时忽略错误。默认值:true
。colorMode
<布尔值> | <string>设置此Console
实例的颜色支持。设置为true
可以在检查值时启用着色。设置为false
会在检查值时禁用着色。设置为'auto'
会使颜色支持取决于isTTY
属性的值以及相应流上getColorDepth()
返回的值。如果还设置了inspectOptions.colors
,则无法使用此选项。默认值:'auto'
。inspectOptions
<Object>指定传递给util.inspect()
的选项。groupIndentation
<number>设置组缩进。 默认值:2
。
创建一个具有一两个可写流实例的新Console
。stdout
是用于打印日志或信息输出的可写流。stderr
用于警告或错误输出。如果未提供stderr
,则 stdout
用于stderr
。
const output = fs.createWriteStream('./stdout.log');
const errorOutput = fs.createWriteStream('./stderr.log');
// Custom simple logger
const logger = new Console({ stdout: output, stderr: errorOutput });
// use it like console
const count = 5;
logger.log('count: %d', count);
// In stdout.log: count 5
全局console
是一个特殊的Console
,其输出发送到
process.stdout
和process.stderr
。它相当于调用:
new Console({ stdout: process.stdout, stderr: process.stderr });
console.assert(value[, ...message])
#
如果value
为假或被省略,则console.assert()
写入一条消息。它只写入一条消息,不会以其他方式影响执行。输出始终以"Assertion failed"
开头。如果提供,则message
使用
util.format()
进行格式化。
如果value
为true,则不会发生任何事情。
console.assert(true, 'does nothing');
console.assert(false, 'Whoops %s work', 'didn\'t');
// Assertion failed: Whoops didn't work
console.assert();
// Assertion failed
console.clear()
#
当stdout
是 TTY 时,调用console.clear()
将尝试清除 TTY。当stdout
不是 TTY 时,此方法不执行任何操作。
console.clear()
的具体操作可能因操作系统和终端类型而异。对于大多数 Linux 操作系统,console.clear()
的操作与clear
shell 命令
类似。在 Windows 上,console.clear()
将仅清除当前终端视口中 Node.js 二进制文件的输出。
console.count([label])
#
label
<string>计数器的显示标签。默认值:'default'
。
维护一个特定于label
的内部计数器,并将使用给定的label
调用console.count()
的次数输出到stdout
。
> console.count()
default: 1
undefined
> console.count('default')
default: 2
undefined
> console.count('abc')
abc: 1
undefined
> console.count('xyz')
xyz: 1
undefined
> console.count('abc')
abc: 2
undefined
> console.count()
default: 3
undefined
>
console.countReset([label])
#
label
<string>计数器的显示标签。默认值:'default'
。
重置特定于label
的内部计数器。
> console.count('abc');
abc: 1
undefined
> console.countReset('abc');
undefined
> console.count('abc');
abc: 1
undefined
>
console.debug(data[, ...args])
#
console.debug()
函数是console.log()
的别名。
console.dir(obj[, options])
#
obj
<任意>options
<对象>showHidden
<boolean>如果true
则对象的不可枚举和符号属性也会显示。默认值:false
。depth
<number>告诉util.inspect()
在格式化对象时要递归多少次。这对于检查大型复杂物体很有用。要使其无限递归,请传递null
。默认值:2
。colors
<boolean>如果为true
,则输出将采用 ANSI 颜色代码样式。颜色可定制;请参阅自定义util.inspect()
颜色。默认值:false
。
在obj
上使用util.inspect()
并将结果字符串打印到stdout
。此函数会绕过obj
上定义的任何自定义 inspect()
函数。
console.dirxml(...data)
#
...data
<任意>
此方法调用console.log()
并将收到的参数传递给它。此方法不会生成任何 XML 格式。
console.error([data][, ...args])
#
打印到带有换行符的stderr
。可以传递多个参数,第一个用作主要消息,所有附加参数用作类似于printf(3)
的替换值(参数全部传递到
util.format()
)。
const code = 5;
console.error('error #%d', code);
// Prints: error #5, to stderr
console.error('error', code);
// Prints: error 5, to stderr
如果在第一个字符串中未找到
格式化元素(例如%d
),则对每个参数调用util.inspect()
并将生成的字符串值连接起来。请参阅util.format()
了解更多信息。
console.group([...label])
#
...label
<任意>
将后续行的缩进增加groupIndentation
长度的空格
。
如果提供了一个或多个label
,则首先打印这些内容,而不添加额外的缩进。
console.groupCollapsed()
#
console.group()
的别名。
console.groupEnd()
#
将后续行的缩进减少groupIndentation
长度的空格
。
console.info([data][, ...args])
#
console.info()
函数是console.log()
的别名。
console.log([data][, ...args])
#
打印到带有换行符的stdout
。可以传递多个参数,第一个用作主要消息,所有附加参数用作类似于printf(3)
的替换值(参数全部传递到
util.format()
)。
const count = 5;
console.log('count: %d', count);
// Prints: count: 5, to stdout
console.log('count:', count);
// Prints: count: 5, to stdout
请参阅util.format()
了解更多信息。
console.table(tabularData[, properties])
#
tabularData
<任意>properties
<string[]>用于构造表的备用属性。
尝试构建一个包含tabularData
属性列
(或使用properties
)和tabularData
行的表并记录它。如果无法将参数解析为表格,则退回到仅记录参数。
// These can't be parsed as tabular data
console.table(Symbol());
// Symbol()
console.table(undefined);
// undefined
console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);
// ┌─────────┬─────┬─────┐
// │ (index) │ a │ b │
// ├─────────┼─────┼─────┤
// │ 0 │ 1 │ 'Y' │
// │ 1 │ 'Z' │ 2 │
// └─────────┴─────┴─────┘
console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);
// ┌─────────┬─────┐
// │ (index) │ a │
// ├─────────┼─────┤
// │ 0 │ 1 │
// │ 1 │ 'Z' │
// └─────────┴─────┘
console.time([label])
#
label
<字符串> 默认值:'default'
启动一个可用于计算操作持续时间的计时器。计时器由唯一的label
标识。调用console.timeEnd()
时
使用相同的label
来停止计时器,并将经过的时间以合适的时间单位输出到stdout
。例如,如果经过的时间是 3869ms,则console.timeEnd()
显示“3.869s”。
console.timeEnd([label])
#
label
<字符串> 默认值:'default'
停止之前通过调用console.time()
启动的计时器并将结果打印到stdout
:
console.time('bunch-of-stuff');
// Do a bunch of stuff.
console.timeEnd('bunch-of-stuff');
// Prints: bunch-of-stuff: 225.438ms
console.timeLog([label][, ...data])
#
对于之前通过调用console.time()
启动的计时器,将经过的时间和其他data
参数打印到stdout
:
console.time('process');
const value = expensiveProcess1(); // Returns 42
console.timeLog('process', value);
// Prints "process: 365.227ms 42".
doExpensiveProcess2(value);
console.timeEnd('process');
console.trace([message][, ...args])
#
将字符串'Trace: '
打印到stderr
,后跟util.format()
格式的消息和代码中当前位置的堆栈跟踪。
console.trace('Show me');
// Prints: (stack trace will vary based on where trace is called)
// Trace: Show me
// at repl:2:9
// at REPLServer.defaultEval (repl.js:248:27)
// at bound (domain.js:287:14)
// at REPLServer.runBound [as eval] (domain.js:300:12)
// at REPLServer.<anonymous> (repl.js:412:12)
// at emitOne (events.js:82:20)
// at REPLServer.emit (events.js:169:7)
// at REPLServer.Interface._onLine (readline.js:210:10)
// at REPLServer.Interface._line (readline.js:549:8)
// at REPLServer.Interface._ttyWrite (readline.js:826:14)
console.warn([data][, ...args])
#
console.warn()
函数是console.error()
的别名。
仅检查器方法#
以下方法由 V8 引擎在通用 API 中公开,但不会显示任何内容,除非与检查器(
--inspect
标志)结合使用。
console.profile([label])
#
label
<字符串>
除非在检查器中使用,否则此方法不会显示任何内容。console.profile()
方法
使用可选标签启动 JavaScript CPU 配置文件,直到调用console.profileEnd()
为止。然后,该配置文件将添加到检查器的“配置文件”面板中。
console.profile('MyLabel');
// Some code
console.profileEnd('MyLabel');
// Adds the profile 'MyLabel' to the Profiles panel of the inspector.
console.profileEnd([label])
#
label
<字符串>
除非在检查器中使用,否则此方法不会显示任何内容。如果当前 JavaScript CPU 分析会话已启动,则停止当前 JavaScript CPU 分析会话,并将报告打印到检查器的“配置文件”面板。有关示例,请参阅
console.profile()
。
如果在没有标签的情况下调用此方法,则最近启动的配置文件将停止。
console.timeStamp([label])
#
label
<字符串>
除非在检查器中使用,否则此方法不会显示任何内容。console.timeStamp()
方法
将带有标签'label'
的事件添加到
检查器的时间轴面板。