La registrazione può essere uno strumento prezioso per la risoluzione dei problemi e l'analisi dell'utilizzo delle app. Questi pacchetti aiutano a renderlo un processo semplice.

La corretta registrazione è un aspetto critico della creazione e della manutenzione di applicazioni Web funzionali. Può aiutarti a tenere traccia degli errori, diagnosticare problemi di prestazioni e capire come gli utenti interagiscono con la tua app.

Node.js ha molti pacchetti di registrazione per aiutarti a creare e gestire registri strutturati. Qui esplorerai i migliori pacchetti di registrazione attualmente disponibili nell'ecosistema Node.js e come utilizzarli.

1. Winston

Winston è una libreria Node.js che fornisce funzionalità di registrazione flessibili, inclusi trasporti multipli. Un "trasporto" è un supporto di archiviazione per i tuoi registri.

Winston supporta i trasporti di console, file e rete. Ciò significa che puoi stampare i tuoi registri sulla console, scriverli su un file o inviarli su una rete. Utilizzando i livelli di registrazione di Winston, puoi creare trasporti personalizzati e filtrare i registri in base alla gravità.

instagram viewer

Puoi installare Winston come dipendenza nella directory del tuo progetto usando npm, il gestore di pacchetti JavaScript. Esegui questo comando:

npm installa winston

Il blocco di codice seguente mostra come configurare un sistema di registrazione di base utilizzando Winston. È possibile definire registri per posizioni diverse e diversi livelli di gravità.

cost Winston = richiedere("vinston");

// Registratore Winston
cost logger = winston.createLogger({
livello: 'informazioni',
formato: winston.format.json(),
defaultMeta: { servizio: 'mio-servizio' },
trasporti: [
nuovo winston.transports. Console(),
nuovo winston.transports. File({ nome del file: 'errore.log', livello: 'errore' }),
nuovo winston.transports. File({ nome del file: 'combinato.log' })
]
});

logger.info("Ciao, Winston!");
logger.warn('Attenzione: qualcosa potrebbe non funzionare.');
logger.errore('Si è verificato un errore.');

Questo codice configura un logger con tre trasporti. Il primo è un trasporto della console, che invierà i messaggi di log alla console. Il secondo è un trasporto di file che scriverà i log con un livello di "errore" in un file "error.log". Il terzo è un trasporto di file che scriverà tutti i log in un file "combined.log".

Il logger è impostato per accedere al livello "info" per impostazione predefinita e include un oggetto di metadati predefinito con un campo "service" impostato su "my-service".

Il codice quindi registra tre messaggi utilizzando il logger rispettivamente ai livelli "info", "warn" e "error". Questi messaggi verranno restituiti alla console e ai file di log appropriati in base alla configurazione dei trasporti.

2. Morgan

Morgan è un middleware di registrazione per Node.js che fornisce funzionalità di registrazione delle richieste di base. È progettato per essere leggero e facile da usare. Morgan funziona intercettando le richieste HTTP e registrando le informazioni rilevanti, come il metodo di richiesta, l'URL, il codice di stato, ecc.

Uno dei principali vantaggi di Morgan è la sua semplicità. Puoi aggiungerlo a un'applicazione Node.js con poche righe di codice, poiché non richiede alcuna configurazione aggiuntiva per l'impostazione.

Morgan supporta più formati di registrazione, incluso il formato comune, combinato, corto, minuscolo, E dev formati, permettendoti di scegliere quello che meglio si adatta alle tue esigenze.

Puoi installare Morgan come dipendenza nella directory del tuo progetto eseguendo questo comando:

npm installa morgan

Questo codice mostra come usare Morgan in un'applicazione Express:

cost espresso = richiedere("esprimere");
cost morgan = richiedere("Morgan");
cost app = espresso();

app.use (morgan("sviluppatore"));

app.get("/", (req, res) => {
res.send("Ciao mondo!");
});

app.ascolta(3000, () => consolare.tronco d'albero("App avviata".));

Il codice inizializza Morgan usando il dev formato. Quando effettui una richiesta GET alla root route (/), Morgan registra i dettagli di tale richiesta nella console.

Nonostante la sua semplicità, Morgan è un potente pacchetto di registrazione che fornisce funzionalità essenziali di registrazione delle richieste per le applicazioni Node.js.

3. Pino

Pino è un pacchetto di registrazione popolare e leggero per le applicazioni Node.js che vanta prestazioni veloci e basso sovraccarico, come affermato in i loro punti di riferimento.

Pino supporta più tipi di trasporto, facilmente estendibili con trasporti personalizzati. Una delle caratteristiche principali di Pino è la sua capacità di registrare i messaggi in formato JSON, che li rende facili da analizzare e analizzare.

L'uso di Pino varia a seconda del framework Node.js; puoi installare Pino come dipendenza nella directory del tuo progetto Express eseguendo il comando seguente:

npm installa pino-http

Per framework diversi, controlla il file Documentazione Pino.

Questo blocco di codice mostra l'utilizzo di Pino in un'applicazione Express:

cost espresso = richiedere("esprimere");
cost app = espresso();
cost pino = richiedere('pino-http')()

app.use (pino)

app.get("/", (req, res) => {
pino (req, res) // registra la richiesta e la risposta
req.log.info('percorso radice') // registra informazioni aggiuntive
res.send("Ciao mondo!");
});

app.ascolta(3000, () => consolare.tronco d'albero("App avviata".));

Questo codice inizializza Pino e lo registra come middleware. Quando effettui una richiesta GET alla root route (/), Pino registra i dettagli della tua richiesta e la sua risposta alla console.

4. Debug

Debug è un pacchetto di registrazione per Node.js modellato sulla tecnica di debug del core di Node.js. Fornisce una soluzione di registrazione leggera che consente di abilitare o disabilitare la registrazione in modo selettivo senza modificare il codice, semplificando il debug e la risoluzione dei problemi.

Debug consente inoltre di impostare gli spazi dei nomi dei log, che forniscono una struttura gerarchica ai log in base ai componenti e ai moduli dell'applicazione, semplificando il filtraggio e la ricerca. Inoltre, Debug offre vari livelli di registrazione, ad esempio errore, avvertenza e informazioni, che puoi utilizzare per assegnare priorità e filtrare i relativi registri.

Puoi installare Debug come dipendenza nella directory del tuo progetto con questo comando:

debug di installazione di npm

Questo codice mostra l'utilizzo di Debug in un'applicazione Express:

cost espresso = richiedere('esprimere');

// Importa il debug e crea lo spazio dei nomi
cost debug = richiedere('debug')('miaapp: server');

cost app = espresso();
cost porta = processo.env. PORTO || 3000;

app.get('/', (req, res) => {
eseguire il debug('Richiesta ricevuta per /');
res.send('Ciao mondo!');
});

app.listen (porta, () => {
eseguire il debug(`Server in ascolto sulla porta ${porta}`);
});

Il codice crea uno spazio dei nomi, miaapp: server. Questo spazio dei nomi distinguerà i log relativi al tuo "server” da quelli associati ad altri moduli con uno spazio dei nomi diverso nella tua applicazione.

Esegui questo comando per avviare il debug:

DEBUG=myapp:* nodo server.js

Questo comando sopra corrisponderà a qualsiasi messaggio di registro con uno spazio dei nomi che inizia con miaapp:. Se vuoi solo vedere i log relativi al tuo server modulo, è possibile impostare il DEBUG variabile d'ambiente a miaapp: server.

Un altro vantaggio di Debug è la sua compatibilità con altri pacchetti di logging, come Winston.

Scelta di un pacchetto di registrazione

La scelta di un pacchetto di registrazione è una decisione importante che può influire in modo significativo sull'efficienza e l'efficacia del processo di debug. È essenziale considerare fattori come le caratteristiche e le capacità del pacchetto, i suoi compatibilità con il linguaggio di programmazione e l'ambiente di sviluppo e la sua facilità d'uso e configurazione.

In definitiva, la scelta del pacchetto di registrazione dipenderà dalle esigenze e dai requisiti specifici del progetto.