發(fā)布于:2021-01-29 14:18:19
0
82
0
在開發(fā)期間和部署之后,正確的日志記錄對(duì)于Web應(yīng)用程序都具有巨大的實(shí)用性。有時(shí)可能很難組織日志記錄的代碼和輸出,即知道每個(gè)日志消息的來(lái)源。我最近發(fā)現(xiàn)debug了一個(gè)用于組織和優(yōu)化調(diào)試的Node.js實(shí)用程序。
創(chuàng)建的實(shí)例debug很簡(jiǎn)單,您可以為每個(gè)文件創(chuàng)建多個(gè)記錄器:
// 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)境變量來(lái)指示在運(yùn)行腳本時(shí)哪些記錄器應(yīng)轉(zhuǎn)到STDOUT:
// Show all debugger messages prefixed "worker:_____"
DEBUG=worker:* node app.js
用于發(fā)信號(hào)通知哪些實(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 是具有非常簡(jiǎn)單的目的并且可以很好地完成任務(wù)的實(shí)用程序之一。在記錄信息性消息時(shí)請(qǐng)不要大驚小怪-它們會(huì)在開發(fā)過(guò)程中為您提供幫助,并且在安全事件后審核應(yīng)用程序時(shí)可能至關(guān)重要!
作者介紹
熱門博客推薦