跳至主要内容

[note] debug 筆記

debug @ npm

安裝

$ npm install debug

使用

// index.js
const debug = require('debug')('foo');
debug('hello');

輸出所有 Debug 項目:

DEBUG=* node index.js            # 輸出所有項目的 debug

只輸出特定類型的 Debug 項目:

DEBUG=worker:* node index.js            # 輸出所有以 worker: 開頭的 debug
DEBUG=foo node index.js # 只輸入特性項目的 debug

若該 debug 是屬於 foo 的話,則會顯示出來。

動態啟動 debug

let debug = require('debug');

console.log(1, debug.enabled('test'));

debug.enable('test');
console.log(2, debug.enabled('test'));

debug.disable();
console.log(3, debug.enabled('test'));

⚠️ 一旦使用了 enable() 則會完全覆蓋掉原本對於 DEBUG 變數的設定。

在 Express 中使用

透過 dotenvdebug 這兩個套件可以輸出有顏色較容易辨識 debug 訊息:

$ npm install dotenv debug

在根目錄新增 .env,根據需要設定 DEBUG 變數:

# .env
DEBUG=* # 輸出所有訊息

app.js 中載入 dotenv:

// app.js
require('dotenv').config();

若有需要輸出 SQL 的訊息,可以在 new Sequelize 的地方透過 logging 參數帶入:

// ./models/index.js
const debug = require('debug')('SQL');

new Sequelize(config.database, config.username, config.password, {
/* other configs */
logging: (msg) => debug(msg),
});