当前位置: 博客 /  NodeJs  / Node.js+console.log调试方法

Node.js+console.log调试方法

今天在使用Node.js的时候遇到一点麻烦,想查看console.log打印出的error具体是什么来进行调试,但是在cmd里面,简直了,黑压压一片,下意识的选中内容之后Ctrl+C,退出了。

在此记录我的解决办法:

加入代码

在启动的.js文件中加入以下代码,运行之后,在同级目录下会自动生成一个debug.log,内容就是所有console.log的内容

//---start output log to debug---
var fs = require('fs');
var util = require('util');
var logFile = fs.createWriteStream(__dirname + '/debug.log', { flags: 'w' });
var logStdout = process.stdout;
console.log = function(doc) {
logFile.write(util.format(doc) + '\n');
logStdout.write(util.format(doc) + '\n');
};
//---end output log to debug---

调试

后来遇到一个问题,log出的嵌套的obj没有展开,直接显示的[Object Object]或者[Array],那么在log的时候需要转换一下:

console.log(JSON.stringify(yourObj))

关于JSON.stringify() 方法请查看: https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

经过这两步,可以打开debug.log文件来查看log信息了。

- END -