Node.js利用debug模塊打印出調(diào)試日志的方法
前言
大家都知道在node程序開發(fā)中時(shí),經(jīng)常需要打印調(diào)試日志。用的比較多的是debug模塊,比如express框架中就用到了。下文簡(jiǎn)單舉幾個(gè)例子進(jìn)行說明。文中相關(guān)代碼示例,可在這里找到。
備注:node在0.11.3版本也加入了util.debuglog()
用于打印調(diào)試日志,使用方法跟debug模塊大同小異。
基礎(chǔ)例子
首先,安裝debug模塊。
npm install debug
使用很簡(jiǎn)單,運(yùn)行node程序時(shí),加上DEBUG=app
環(huán)境變量即可。
/** * debug基礎(chǔ)例子 */ var debug = require('debug')('app'); // 運(yùn)行 DEBUG=app node 01.js // 輸出:app hello +0ms debug('hello');
例子:命名空間
當(dāng)項(xiàng)目程序變得復(fù)雜,我們需要對(duì)日志進(jìn)行分類打印,debug支持命令空間,如下所示。
DEBUG=app,api
:表示同時(shí)打印出命名空間為app、api的調(diào)試日志。DEBUG=a*
:支持通配符,所有命名空間為a開頭的調(diào)試日志都打印出來。
/** * debug例子:命名空間 */ var debug = require('debug'); var appDebug = debug('app'); var apiDebug = debug('api'); // 分別運(yùn)行下面幾行命令看下效果 // // 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');
例子:命名空間排除
有的時(shí)候,我們想要打印出所有的調(diào)試日志,除了個(gè)別命名空間下的。這個(gè)時(shí)候,可以通過-來進(jìn)行排除,如下所示。-account*表示排除所有以account開頭的命名空間的調(diào)試日志。
/** * debug例子:排查命名空間 */ var debug = require('debug'); var listDebug = debug('app:list'); var profileDebug = debug('app:profile'); var loginDebug = debug('account:login'); // 分別運(yùn)行下面幾行命令看下效果 // // 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');
此外,也可以自定義格式化內(nèi)容。
/** * debug:自定義格式化 */ var createDebug = require('debug') createDebug.formatters.h = function(v) { return v.toUpperCase(); }; var debug = createDebug('foo'); // 運(yùn)行 DEBUG=foo node 04.js // 輸出 foo My name is CHYINGP +0ms debug('My name is %h', 'chying');
相關(guān)鏈接
debug:https://github.com/visionmedia/debug
debuglog:https://nodejs.org/api/util.html#util_util_debuglog_section
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持
- vscode調(diào)試node.js的實(shí)現(xiàn)方法
- Node.js使用supervisor進(jìn)行開發(fā)中調(diào)試的方法
- 詳解如何在vscode里面調(diào)試js和node.js的方法步驟
- sublime text配置node.js調(diào)試(圖文教程)
- 詳解使用Visual Studio Code對(duì)Node.js進(jìn)行斷點(diǎn)調(diào)試
- 基于node.js之調(diào)試器詳解
- Node.js調(diào)試技術(shù)總結(jié)分享
- 利用Chrome DevTools直接調(diào)試Node.js和JavaScript的方法詳解(并行)
- 調(diào)試Node.JS的輔助工具(NodeWatcher)
- Node.js 深度調(diào)試方法解析
相關(guān)文章
Nodejs監(jiān)控事件循環(huán)異常示例詳解
這篇文章主要給大家介紹了關(guān)于Nodejs監(jiān)控事件循環(huán)異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Nodejs具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09使用nodejs?spider爬取圖片及數(shù)據(jù)實(shí)現(xiàn)
這篇文章主要為大家介紹了使用nodejs?spider爬取圖片及數(shù)據(jù)實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07node+express+ejs制作簡(jiǎn)單頁(yè)面上手指南
本文記錄了使用node+express+ejs制作簡(jiǎn)單頁(yè)面的全過程,話說express+ejs真的是太難了,有種蛋蛋的憂傷~2014-11-11使用nvm實(shí)現(xiàn)多個(gè)nodejs版本的快速切換
NodeJS的升級(jí)比較快,在開發(fā)中要使用最新的版本,必須經(jīng)常升級(jí),但對(duì)于一些老項(xiàng)目可能又要使用低版本的NodeJS,使用nvm工具可以方便的管理下載的NodeJS版本,并通過命令實(shí)現(xiàn)NodeJS版本的快速切換,需要的朋友可以參考下2024-09-09Node.js實(shí)現(xiàn)mysql連接池使用事務(wù)自動(dòng)回收連接的方法示例
這篇文章主要介紹了Node.js實(shí)現(xiàn)mysql連接池使用事務(wù)自動(dòng)回收連接的方法,結(jié)合實(shí)例形式分析了node.js操作mysql連接池實(shí)現(xiàn)基于事務(wù)的連接回收操作相關(guān)技巧,需要的朋友可以參考下2018-02-02Node.js中的require.resolve方法使用簡(jiǎn)介
在Node.js中,可以使用require.resolve函數(shù)來查詢某個(gè)模塊文件的帶有完整絕對(duì)路徑的文件名,下面這篇文章主要介紹了Node.js中require.resolve方法使用的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04Puppeteer 爬取動(dòng)態(tài)生成的網(wǎng)頁(yè)實(shí)戰(zhàn)
這篇文章主要介紹了Puppeteer 爬取動(dòng)態(tài)生成的網(wǎng)頁(yè)實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11