原文連接:Node.js Debuggingnode
無論在開發中仍是部署後,適當的日誌記錄對於web應用來講很是有用。困難的是如何組織日誌代碼和輸出日誌,簡單來講:知道每一個日誌的來源。我最近找到一種實用的組織和優化Node.js調試的方法。web
建立一個 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
:bash
// Show all debugger messages prefixed "worker:_____"(全部debugger的前綴都爲 "worker:_____")
DEBUG=worker:* node app.js複製代碼
當使用環境變量的方式,當你只想在開發或生產環境記錄某種類型的消息,輸出的日誌會很清晰。命名空間的使用多麼明智!app
我還可能使用 chalk
爲消息加上我想要的顏色:dom
var chalk = require('chalk');
debuggerA(chalk.red.bold('OMG an awful error!'));複製代碼
調試具備很是簡單的目的,爲了幫助咱們更好的完成任務。當涉及到記錄信息消息時不要吝嗇,它會在開發過程當中幫助你,而且在安全事件發生後更好的審視自身!優化
本文譯者:餘震(Freak)
譯文出處:Rockjins Blog
版權聲明:本博客全部文章除特別聲明外,均採用 CC BY-NC-SA 3.0 CN許可協議。轉載請註明出處!ui