發(fā)布于:2021-01-29 14:18:19
0
81
0
在開發(fā)期間和部署之后,正確的日志記錄對于Web應(yīng)用程序都具有巨大的實(shí)用性。有時可能很難組織日志記錄的代碼和輸出,即知道每個日志消息的來源。我最近發(fā)現(xiàn)debug了一個用于組織和優(yōu)化調(diào)試的Node.js實(shí)用程序。
創(chuàng)建的實(shí)例debug很簡單,您可以為每個文件創(chuàng)建多個記錄器:
// Create multiple instances of debug
// In theory these would serve two different purposes
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();
為debug實(shí)例指定的名稱空間必須使用環(huán)境變量來指示在運(yùn)行腳本時哪些記錄器應(yīng)轉(zhuǎn)到STDOUT:
// Show all debugger messages prefixed "worker:_____"
DEBUG=worker:* node app.js
用于發(fā)信號通知哪些實(shí)例應(yīng)輸出的環(huán)境變量策略非常出色,因?yàn)槟赡苤幌M承╊愋偷南⒂涗浽谏a(chǎn)與開發(fā)中。明智地使用名稱空間!
我還可以根據(jù)需要使用chalk 彩色消息:
var chalk = require('chalk')
;debuggerA(chalk.red.bold('OMG an awful error!'));
debug 是具有非常簡單的目的并且可以很好地完成任務(wù)的實(shí)用程序之一。在記錄信息性消息時請不要大驚小怪-它們會在開發(fā)過程中為您提供幫助,并且在安全事件后審核應(yīng)用程序時可能至關(guān)重要!