本文节选自《Nodejs学习笔记》,更多章节和更新请访问github主页地址。欢迎加入群交流,群号197339705。前言在开发node程序的时候,经常需要打印调试日志。debug模块用的比较多,比如在express框架中。下面简要描述几个例子。本文中的相关代码示例可以在这里找到。备注:Node还在0.11.3版本中添加了util.debuglog()来打印调试日志。使用方法与调试模块类似。基本示例首先,安装调试模块。npminstalldebug使用起来非常简单,只需要在运行node程序时添加DEBUG=app环境变量即可。/***调试基本示例*/vardebug=require('debug')('app');//runDEBUG=appnode01.js//output:apphello+0msdebug('hello');例子:Namespace当项目程序变得复杂时,我们需要对日志进行分类打印。debug支持命令空间,如下图。DEBUG=app,api:表示同时打印出命名空间为app和api的调试日志。DEBUG=a*:支持通配符,打印所有命名空间以a开头的调试日志。/***debugexample:namespace*/vardebug=require('debug');varappDebug=debug('app');varapiDebug=debug('api');//运行下面几行命令看看效果如下////DEBUG=appnode02.js//DEBUG=apinode02.js//DEBUG=app,apinode02.js//DEBUG=a*node02.js//appDebug('hello');apiDebug('你好');示例:命名空间排除有时,我们希望打印出除某个命名空间下的所有调试日志。这时候可以使用-来排除,如下图。-account*表示排除所有以account命名空间开头的调试日志。/***调试示例:检查命名空间*/vardebug=require('debug');varlistDebug=debug('app:list');varprofileDebug=debug('app:profile');varloginDebug=debug('account:login');//运行下面几行命令看看效果////DEBUG=*node03.js//DEBUG=*,-account*node03.js//listDebug('hello');profileDebug('你好');loginDebug('你好');示例:自定义格式化调试也支持格式化输出,如下例所示。vardebug=require('debug')('app');debug('我叫%s','chyingp');此外,您还可以自定义格式化内容。/***调试:自定义格式化程序*/varcreateDebug=require('debug')createDebug.formatters.h=function(v){returnv.toUpperCase();};vardebug=createDebug('foo');//运行DEBUG=foonode04.js//输出fooMynameisCHYINGP+0msdebug('Mynameis%h','chying');相关链接debug:https://github.com/visionmedi..debuglog:https://nodejs.org/api/util.h...
