console.debug输出在哪里?如何启用它才能出现在stdout上,比如console.log?
我在https://nodejs.org/api/console.html查找了它,但它没有出现。 但是,如果我从命令行运行节点,则会定义它。
node
console.debug
[Function: debug]
console.debug('but where does this go?')
因此定义了函数,但(默认情况下)不输出到stdout或stderr。我猜测有一个标志可以打开它。
答案 0 :(得分:9)
从节点v8.0.0开始,在v8.10和v10.x之前(取决于具体方法),全局console
暴露了许多在浏览器中公开的相同方法,但没有记录他们的存在或行为。这些方法包括:
console.debug console.dirxml console.markTimeline
console.profile console.profileEnd console.table
console.timeStamp console.timeline console.timelineEnd
这些方法的实现不在节点中(它们没有出现在lib/console.js中);它们是由V8本身添加的,并且是copied到节点的全局console
对象上。
正如您所观察到的那样,调用这些方法并不会导致出现任何问题。相反,输出到任何附加的检查员。
这意味着您必须使用--inspect
标记运行节点,打开Chrome并转到chrome://inspect
,然后将检查器附加到您的流程。您将在检查器的控制台中看到扩展控制台方法的输出。
请注意,默认情况下,检查员控制台会过滤掉对console.debug
的调用。您需要点击级别下拉列表并选中详细才能看到console.debug
输出。
或者,您可以:
console.debug = console.log
之类的操作从v8.10.0开始,console.debug
方法由节点实现,其输出显示在stdout上。 GUI检查器保留其行为(除非您更改日志记录级别,否则消息将被隐藏)。
node v10.x实现了上面列出的许多其他方法,这意味着这些方法现在按预期工作(即显示在stdout上)并且是documented。