『翻譯』Node.js 除錯

FREAKFILTH發表於2019-01-15

原文連結:Node.js Debugging

不管在開發中還是部署後,適當的日誌記錄對於web應用來說非常有用。困難的是如何組織日誌程式碼和輸出日誌,簡單來說:知道每個日誌的來源。我最近找到一種實用的組織和優化Node.js除錯的方法。

建立一個 debug 例項很簡單,並且可以為每個檔案建立多個 logger

// Create multiple instances of debug(建立多個debug例項)
// In theory these would serve two different purposes(理論上這兩個debug例項分別負責不同的日誌輸出)
var debuggerA = require(`debug`)(`worker:a`),
    debuggerB = require(`debug`)(`worker:b`);

// Sample usages of the debugger(演示偵錯程式的用法)
function work() {
  debuggerA(`doing lots of uninteresting work`);
  setTimeout(work, Math.random() * 1000);
}

work();

function workb() {
  debuggerB(`doing some work`);
  setTimeout(workb, Math.random() * 2000);
}

workb();複製程式碼

logger
logger

你必須定義環境變數,用於給偵錯程式例項分配名稱空間。當指令碼執行時,日誌應該輸出到 STDOUT

// Show all debugger messages prefixed "worker:_____"(所有debugger的字首都為 "worker:_____")
DEBUG=worker:* node app.js複製程式碼

當使用環境變數的方式,當你只想在開發或生產環境記錄某種型別的訊息,輸出的日誌會很清晰。名稱空間的使用多麼明智!

我還可能使用 chalk 為訊息加上我想要的顏色:

var chalk = require(`chalk`);

debuggerA(chalk.red.bold(`OMG an awful error!`));複製程式碼

除錯具有非常簡單的目的,為了幫助我們更好的完成任務。當涉及到記錄資訊訊息時不要吝嗇,它會在開發過程中幫助你,並且在安全事件發生後更好的審視自身!

本文譯者:餘震(Freak)
譯文出處:Rockjins Blog
版權宣告:本部落格所有文章除特別宣告外,均採用 CC BY-NC-SA 3.0 CN許可協議。轉載請註明出處!

相關文章