文章目录
资料原文
概述
dubug模块暴露一个函数,返回一个修饰过的console.error函数:
修饰:
- 加前缀(传入的字符串参数,用于区分不同的debug实例)
- 给前缀加颜色
通过不同debug实例的前缀和颜色区分, 能方便的实现模块之间及模块各部分之间的debug的切换.
用法简介(debug使用+DEBUG环境变量启用)
-
使用方法:
- 在代码中引入debug模块(构造函数)
- 用debug模块构造debug实例(传入区分字符串)
- 用在适当位置调用合适的debug实例进行输出
- 通过环境变量DEBUG来控制debug实例的允许输出列表(启用列表)
-
代码举例: (basic.js)
var debug = require('debug')('http'); //引入debug模块并创建debug实例 var http = require('http'); //引入http模块用于构造http服务器 var name = 'My App'; debug('booting %o', name); //调用debug输出(printf风格输出--详见util.inspect及console模块) http.createServer(function(req, res){ //创建服务器 debug(req.method + ' ' + req.url); //收到请求时打印http方法及url res.end('hello\n'); }).listen(3000, function(){ debug('listening'); //开启服务器监听时打印listening });
运行服务器命令行代码:
-
linux端:
DEBUG=http node basic.js
-
windows端:
set DEBUG=http & node basic.js
控制台效果:
-
DEBUG环境变量与debug实例的启用列表
要想debug实例在控制台打印出输出, 仅仅在相应位置调用还不够, 还需要启用对应name的debug实例才可以.启用debug实例有两种方法:
- 启动app的命令里通过设置DEBUG环境变量实现
- 代码内动态设置debug的启用
本段说明如何通过DEBUG环境变量设置启用列表:
根据DEBUG环境变量的值来启用对应name的debug输出,这样对应的debug才能将信息打印到控制台. 所以,要打印name为test的debug,需要满足两个条件:
1.引入debug模块,传name参数构建debug实例并在对应位置调用
2.该name值被包含在启动时的DEBUG环境参数值中
DEBUG环境变量的设置语法总结
-
设置惯例
- 如果在多个库之间使用debug模块, 为方便阅读使用,debug的name应该使用库名
- 如果你同一个库里同时使用多个debugger,应该使用
库名:功能名
的格式来进行区分
-
语法说明
-
DEBUG设置的各个项用空格或者逗号之一进行分隔
set DEBUG=http,net,util & node basic.js set DEBUG=http net util & node basic.js
-
带
*
号与带-
号的项表示name集合,不带的表示单个nameset DEBUG=http:* & node basic.js #启用所有name以'http:'开头的debug实例 set DEBUG=-http,net & node basic.j #不启用所有以'http'开头的debug实例,启用name为net的debug实例
-
*
号与-
号的使用:*
号: 通配符,表示后面的字符串可以是任何内容-
号: 取补集
-