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匿名函数的问题分析
Mar 30 Javascript
js data日期初始化的5种方法
Dec 29 Javascript
jQuery中prev()方法用法实例
Jan 08 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
May 03 Javascript
JavaScript中操作字符串小结
May 04 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
Feb 09 Javascript
React 子组件向父组件传值的方法
Jul 24 Javascript
微信小程序基于本地缓存实现点赞功能的方法
Dec 18 Javascript
AngularJS日期格式化常见操作实例分析
May 17 Javascript
浅谈React Native 传参的几种方式(小结)
May 21 Javascript
js正则表达式简单校验方法
Jan 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之第七天
2006/10/09 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
2012/06/07 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
js电信网通双线自动选择技巧
2008/11/18 Javascript
javascript 学习之旅 (3)
2009/02/05 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
jquery实现手机号码选号的方法
2015/07/31 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
jquery.zclip轻量级复制失效问题
2017/01/08 Javascript
angular实现IM聊天图片发送实例
2017/05/08 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
Vue实现购物车场景下的应用
2017/11/27 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
Python对数据库操作
2016/03/28 Python
使用python 和 lint 删除项目无用资源的方法
2017/12/20 Python
python数据分析数据标准化及离散化详解
2018/02/26 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
2020/02/27 Python
Python列表倒序输出及其效率详解
2020/03/04 Python
django 外键创建注意事项说明
2020/05/20 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
Python3 用matplotlib绘制sigmoid函数的案例
2020/12/11 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
PHP经典面试题
2016/09/03 面试题
自动化专业个人求职信范文
2013/11/29 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
故宫的导游词
2015/01/31 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP