Node.js利用debug模块打印出调试日志的方法


Posted in Javascript onApril 25, 2017

前言

大家都知道在node程序开发中时,经常需要打印调试日志。用的比较多的是debug模块,比如express框架中就用到了。下文简单举几个例子进行说明。文中相关代码示例,可在这里找到。

备注:node在0.11.3版本也加入了util.debuglog()用于打印调试日志,使用方法跟debug模块大同小异。

基础例子

首先,安装debug模块。

npm install debug

使用很简单,运行node程序时,加上DEBUG=app环境变量即可。

/**
 * debug基础例子
 */
var debug = require('debug')('app');

// 运行 DEBUG=app node 01.js
// 输出:app hello +0ms
debug('hello');

例子:命名空间

当项目程序变得复杂,我们需要对日志进行分类打印,debug支持命令空间,如下所示。

  • DEBUG=app,api:表示同时打印出命名空间为app、api的调试日志。
  • DEBUG=a* :支持通配符,所有命名空间为a开头的调试日志都打印出来。
/**
 * debug例子:命名空间
 */
var debug = require('debug');
var appDebug = debug('app');
var apiDebug = debug('api');

// 分别运行下面几行命令看下效果
// 
//  DEBUG=app node 02.js
//  DEBUG=api node 02.js
//  DEBUG=app,api node 02.js
//  DEBUG=a* node 02.js
//  
appDebug('hello');
apiDebug('hello');

例子:命名空间排除

有的时候,我们想要打印出所有的调试日志,除了个别命名空间下的。这个时候,可以通过-来进行排除,如下所示。-account*表示排除所有以account开头的命名空间的调试日志。

/**
 * debug例子:排查命名空间
 */
var debug = require('debug');
var listDebug = debug('app:list');
var profileDebug = debug('app:profile');
var loginDebug = debug('account:login');

// 分别运行下面几行命令看下效果
// 
//   DEBUG=* node 03.js
//   DEBUG=*,-account* node 03.js
//   
listDebug('hello');
profileDebug('hello');
loginDebug('hello');

例子:自定义格式化

debug也支持格式化输出,如下例子所示。

var debug = require('debug')('app');

debug('my name is %s', 'chyingp');

此外,也可以自定义格式化内容。

/**
 * debug:自定义格式化
 */
var createDebug = require('debug')

createDebug.formatters.h = function(v) {
 return v.toUpperCase();
};

var debug = createDebug('foo');

// 运行 DEBUG=foo node 04.js 
// 输出 foo My name is CHYINGP +0ms
debug('My name is %h', 'chying');

相关链接

debug:https://github.com/visionmedia/debug
debuglog:https://nodejs.org/api/util.html#util_util_debuglog_section

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持

Javascript 相关文章推荐
遨游,飞飞,IE,空中网 浏览器无提示关闭方法
Jul 11 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
js通过iframe加载外部网页的实现代码
Apr 05 Javascript
基于javascript实现图片懒加载
Jan 05 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
angular中的http拦截器Interceptors的实现
Feb 21 Javascript
详解webpack分包及异步加载套路
Jun 29 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
Nov 02 Javascript
浅析Vue.js中v-bind v-model的使用和区别
Dec 04 Javascript
vue router总结 $router和$route及router与 router与route区别
Jul 05 Javascript
vue中在vuex的actions中请求数据实例
Nov 08 Javascript
浅析JavaScript中的变量提升
Jun 01 Javascript
JS实现禁止高频率连续点击的方法【基于ES6语法】
Apr 25 #Javascript
json的结构与遍历方法实例分析
Apr 25 #Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
Apr 25 #jQuery
用vue和node写的简易购物车实现
Apr 25 #Javascript
ES6数组的扩展详解
Apr 25 #Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
Apr 25 #Javascript
如何在 Vue.js 中使用第三方js库
Apr 25 #Javascript
You might like
全国中波电台频率表
2020/03/11 无线电
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
js禁止页面复制功能禁用页面右键菜单示例代码
2013/08/29 Javascript
使用indexOf等在JavaScript的数组中进行元素查找和替换
2013/09/18 Javascript
JS教程:window.location使用方法的区别介绍
2013/10/04 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
ES6中数组array新增方法实例总结
2017/11/07 Javascript
详解使用vuex进行菜单管理
2017/12/21 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
javascript中的with语句学习笔记及用法
2020/02/17 Javascript
Node Mongoose用法详解【Mongoose使用、Schema、对象、model文档等】
2020/05/13 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
详解JavaScript数据类型和判断方法
2020/09/04 Javascript
[53:15]Mineski vs iG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
对Python捕获控制台输出流的方法详解
2019/01/07 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
CSS3实现水平居中、垂直居中、水平垂直居中的实例代码
2020/02/27 HTML / CSS
德国网上宠物店:Zoobio
2018/05/23 全球购物
俄罗斯化妆品和香水网上商店:Iledebeaute
2019/01/03 全球购物
Fox Racing英国官网:越野摩托车和山地自行车服装
2020/02/26 全球购物
法国隐形眼镜网站:VisionDirect.fr
2020/03/03 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
电子信息科学专业自荐信
2014/01/30 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
优秀班主任材料
2014/12/16 职场文书
2014年便民服务中心工作总结
2014/12/20 职场文书
高中生毕业评语
2014/12/30 职场文书
拾金不昧表扬稿
2015/01/16 职场文书
女方离婚起诉书
2015/05/18 职场文书
人民检察院起诉书
2015/05/20 职场文书