Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript node.js-从模块捕获调试输出_Javascript_Node.js_Debugging - Fatal编程技术网

Javascript node.js-从模块捕获调试输出

Javascript node.js-从模块捕获调试输出,javascript,node.js,debugging,Javascript,Node.js,Debugging,我需要捕获调试信息,同时进行require调用以找出某些包未找到的原因 在模块(internal Module.js)中,有几个debug调用,例如: if (parent) { debug('looking for %j in %j', id, paths); } 我需要做什么来捕获此调试信息 感谢debug()是一个使用创建的函数,这意味着如果设置了正确的环境变量,调试消息将写入stderr,然后可以将其捕获到文件中(例如): 编辑:要从您自己的应用程序中捕获这些消息,

我需要捕获调试信息,同时进行require调用以找出某些包未找到的原因

在模块(internal Module.js)中,有几个debug调用,例如:

  if (parent) {
      debug('looking for %j in %j', id, paths);
  }
我需要做什么来捕获此调试信息

感谢
debug()
是一个使用创建的函数,这意味着如果设置了正确的环境变量,调试消息将写入
stderr
,然后可以将其捕获到文件中(例如):

编辑:要从您自己的应用程序中捕获这些消息,我认为您必须求助于monkeypatching,例如
console.error()

此代码需要在要跟踪的任何
require()
语句之前运行,并且它不是非常健壮(如果
util.debuglog
的实现发生更改,它可能会中断)。

debug()
是使用创建的函数,这意味着如果设置了正确的环境变量,调试消息将写入
stderr
,然后您可以将其捕获到文件中(例如):

编辑:要从您自己的应用程序中捕获这些消息,我认为您必须求助于monkeypatching,例如
console.error()


这段代码需要在您想要跟踪的任何
require()
语句之前运行,而且它不是很健壮(如果
util.debuglog
的实现发生更改,它可能会中断)。

谢谢。是否可以在node.js应用程序中捕获stderr?谢谢。是否可以在node.js应用程序中捕获stderr?
env NODE_DEBUG=module node your-app.js 2> debug.log
let error = console.error.bind(console);
console.error = function() {
  if (arguments[1] !== 'MODULE') {
    return error.apply(this, arguments);
  }
  console.log('error log', arguments);
};