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à.
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.