比起console.log
来debug module真的是好处多多。比如,可在运行时候配置关停;可对某块代码单独打log;不同颜色显示,显示两次调用时间差当然也是另一大好处。
这两篇文章把debug讲得很清楚
- https://developer.ibm.com/node/2016/09/15/lets-code-it-the-debug-module/
- https://developer.ibm.com/node/2016/10/12/the-node-js-debug-module-advanced-usage/
以前在浏览器使用时候,它不能像console.log那样打出是哪个文件哪一行打印的,这是它比console.log唯一的缺点,给debug开了一个问题单,结果真有人给解答了,方法就是给debug文件设置blackboxing 这样在浏览器里使用它的最大障碍就解除了。
在node里使用它另一大障碍是window平台启动方式要麻烦一点, 但是其实可以把配置启动debug的开关写在 process.env.DEBUG, 这样就保证跨平台启动
在vscode启动另一个问题是设置了 "outputCapture": "std" 会自动使用时间格式而不是用时间差
这个问题暂时没有好办法
使用debug可能另一个困惑是提供log的npm包实在是太多了, 什么时候该用哪个?它们能搭配使用吗?
不同的logger,写得比较好的大致还有这几篇(当然内容都差不多):
熟悉它们后就会意识到,它们使用场景是不一样,虽然在功能上有些重叠:debugjs 不能算logger,它真的是用来debug问题的; morgan可以当成debug工具调试http相关消息,也可以用作logger,记录http消息,比如出错的消息
我总结在SO这个问答里