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 相关文章推荐
javascript编程起步(第三课)
Feb 27 Javascript
15个款优秀的 jQuery 图片特效插件推荐
Nov 21 Javascript
js获得鼠标的坐标值的方法
Mar 13 Javascript
JS对img进行操作(换图片/切图/轮换/停止)
Apr 17 Javascript
javascript同页面多次调用弹出层具体实例代码
Aug 16 Javascript
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
js中遍历对象的属性和值的方法
Jul 27 Javascript
用瀑布流的方式在网页上插入图片的简单实现方法
Sep 23 Javascript
javascript实现用户点击数量统计
Dec 25 Javascript
对比分析Django的Q查询及AngularJS的Datatables分页插件
Feb 07 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
Jul 05 Javascript
Vue组件通信$attrs、$listeners实现原理解析
Sep 03 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
基于PHP CURL用法的深入分析
2013/06/09 PHP
PHP验证码函数代码(简单实用)
2013/09/29 PHP
php使用环形链表解决约瑟夫问题完整示例
2018/08/07 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
常用js字符串判断方法整理
2013/10/18 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
Node.js 制作实时多人游戏框架
2015/01/08 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
vue.js学习笔记:如何加载本地json文件
2017/01/17 Javascript
JS实现最简单的冒泡排序算法
2017/02/15 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
vue单页缓存方案分析及实现
2018/09/25 Javascript
vue配置font-awesome5的方法步骤
2019/01/27 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
解决前后端分离 vue+springboot 跨域 session+cookie失效问题
2019/05/13 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
python 中文乱码问题深入分析
2011/03/13 Python
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
python飞机大战pygame碰撞检测实现方法分析
2019/12/17 Python
Python基于numpy模块实现回归预测
2020/05/14 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
2020/11/27 Python
有关HTML5页面在iPhoneX适配问题
2017/11/13 HTML / CSS
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
2013年大学生的自我鉴定
2013/10/24 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
学习型家庭事迹材料
2014/12/20 职场文书
学术会议邀请函
2015/01/30 职场文书
试用期自我评价怎么写
2015/03/10 职场文书