Node.js利用debug模塊打印出調(diào)試日志的方法
前言
大家都知道在node程序開發(fā)中時,經(jīng)常需要打印調(diào)試日志。用的比較多的是debug模塊,比如express框架中就用到了。下文簡單舉幾個例子進行說明。文中相關(guān)代碼示例,可在這里找到。
備注:node在0.11.3版本也加入了util.debuglog()
用于打印調(diào)試日志,使用方法跟debug模塊大同小異。
基礎(chǔ)例子
首先,安裝debug模塊。
npm install debug
使用很簡單,運行node程序時,加上DEBUG=app
環(huán)境變量即可。
/** * debug基礎(chǔ)例子 */ var debug = require('debug')('app'); // 運行 DEBUG=app node 01.js // 輸出:app hello +0ms debug('hello');
例子:命名空間
當項目程序變得復(fù)雜,我們需要對日志進行分類打印,debug支持命令空間,如下所示。
DEBUG=app,api
:表示同時打印出命名空間為app、api的調(diào)試日志。DEBUG=a*
:支持通配符,所有命名空間為a開頭的調(diào)試日志都打印出來。
/** * 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');
例子:命名空間排除
有的時候,我們想要打印出所有的調(diào)試日志,除了個別命名空間下的。這個時候,可以通過-來進行排除,如下所示。-account*表示排除所有以account開頭的命名空間的調(diào)試日志。
/** * 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');
此外,也可以自定義格式化內(nèi)容。
/** * 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');
相關(guān)鏈接
debug:https://github.com/visionmedia/debug
debuglog:https://nodejs.org/api/util.html#util_util_debuglog_section
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持
- vscode調(diào)試node.js的實現(xiàn)方法
- Node.js使用supervisor進行開發(fā)中調(diào)試的方法
- 詳解如何在vscode里面調(diào)試js和node.js的方法步驟
- sublime text配置node.js調(diào)試(圖文教程)
- 詳解使用Visual Studio Code對Node.js進行斷點調(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)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Nodejs具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-09-09使用nodejs?spider爬取圖片及數(shù)據(jù)實現(xiàn)
這篇文章主要為大家介紹了使用nodejs?spider爬取圖片及數(shù)據(jù)實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07Node.js實現(xiàn)mysql連接池使用事務(wù)自動回收連接的方法示例
這篇文章主要介紹了Node.js實現(xiàn)mysql連接池使用事務(wù)自動回收連接的方法,結(jié)合實例形式分析了node.js操作mysql連接池實現(xiàn)基于事務(wù)的連接回收操作相關(guān)技巧,需要的朋友可以參考下2018-02-02Node.js中的require.resolve方法使用簡介
在Node.js中,可以使用require.resolve函數(shù)來查詢某個模塊文件的帶有完整絕對路徑的文件名,下面這篇文章主要介紹了Node.js中require.resolve方法使用的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-04-04Puppeteer 爬取動態(tài)生成的網(wǎng)頁實戰(zhàn)
這篇文章主要介紹了Puppeteer 爬取動態(tài)生成的網(wǎng)頁實戰(zhàn),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11