NPM酷库,每天两分钟,了解一个流行NPM库。
今天我们要了解的库是debug,一个专门用来控制输出调试日志的库。
通常,我们直接使用 输出调试日志,使用对象直接将日志输出到控制台,由于Node.js和浏览器环境都默认支持对象,所以,这种方式是最直接和最简洁的。
但是,随着项目规模增加, 控制台输出的日志就会堆积很多而不可读。另一方面,我们需要在开发调试环境才打开日志,而线上生产环境就不需要输出过多的日志。使用 对象控制日志输出,我们会自然而然地以“加注释”、“去注释”的方式来控制日志的输出。这样很笨。
debug库就是一款专门控制日志输出的库,能够完美解决我们的上述需求。
首先,debug库会判断环境变量,所以我们不需要修改代码,只调整一下程序运行环境就可以控制日志是否输出。另外,debug库不是简单地布尔判断环境变量,而是会对环境变量进行解析,允许我们选择性地控制输出哪些模块的日志,有效地解决了调试程序时候控制台日志堆积问题,因为我们可以控制debug,让其只输出我们关心的程序模块的日志。
下面就是一段使用了debug库的程序示例。
如果设置环境变量DEBUG为 那么就会输出所有的日志:
如果设置环境变量DEBUG为 那么就只会输出 的日志:
从上述例子中,得知环境变量的设置支持通配符。假设,我们的程序中存在如下调试器 “connect:bodyParser”、”connect:compress”、”connect:session”,我们可以将DEBUG设置为 ,或者简单地使用通配符 ,如果我们需要调试非connect相关的其他信息,可以使用 符号,“减去” connect, 。
在浏览器端,debug也能够很好地运行,不过在浏览器端开启调试,并不是使用环境变量,因为浏览器端不支持访问。在浏览器端,使用 对象控制debug:
参考: https://github.com/visionmedia/debug
领取专属 10元无门槛券
私享最新 技术干货