原文連結: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();複製程式碼
你必須定義環境變數,用於給偵錯程式例項分配名稱空間。當指令碼執行時,日誌應該輸出到 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許可協議。轉載請註明出處!