Ladění Node.js

Správné protokolování je pro webové aplikace velmi užitečné, a to jak během vývoje, tak po nasazení. Někdy může být obtížné organizovat kód i výstup protokolování, tj. vědět, odkud každá zpráva protokolu pochází. Nedávno jsem našel debug , nástroj Node.js pro organizované a optimalizované ladění.

Vytvoření instance debug je jednoduchý a můžete vytvořit více loggerů na soubor:

// 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();

Jmenný prostor daný debug instanci, protože musíte použít proměnnou prostředí k signalizaci, které loggery by měly přejít na STDOUT, když je skript spuštěn:

// Show all debugger messages prefixed "worker:_____"
DEBUG=worker:* node app.js

Strategie proměnných prostředí pro signalizaci, které instance by měly vystupovat, je geniální, protože možná budete chtít, aby se v produkčním vs. vývoji zaznamenávaly pouze určité typy zpráv. Používejte jmenné prostory moudře!

Byl jsem také schopen použít chalk vybarvit zprávy podle potřeby:

var chalk = require('chalk');

debuggerA(chalk.red.bold('OMG an awful error!'));

debug je jednou z těch utilit, která má velmi jednoduchý účel a dobře plní úkol. Nešetřete, pokud jde o protokolování informativních zpráv – pomohou vám během vývoje a mohou být kritické při auditování aplikace po bezpečnostním incidentu!