En tant que développeur Node.js, la journalisation est à peu près tout ce qui concerne le débogage, la surveillance et la maintenance de vos applications. Mais utilisez-vous les meilleures pratiques en matière de journalisation ? Explorons quelques techniques de journalisation qui peuvent faire passer vos applications Node.js au niveau supérieur.
Pour en savoir plus, vous pouvez consulter l'article de blog complet.
? Outil : Winston
? Description : Une bibliothèque de journalisation polyvalente pour Node.js
? Caractéristiques principales :
javascriptCopyconst winston = require('winston'); const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }) ] });
? Outil : Morgan
? Description : simplifie la journalisation des requêtes HTTP dans Express.js
? Caractéristiques principales :
javascriptCopyconst express = require('express'); const morgan = require('morgan'); const app = express(); app.use(morgan('combined'));
? Outil : Bunyan
? Description : Journalisation JSON structurée pour les applications Node.js
? Caractéristiques principales :
javascriptCopyconst bunyan = require('bunyan'); const log = bunyan.createLogger({name: "myapp"}); log.info("Hi"); log.warn({lang: 'fr'}, "Au revoir");
? Outil : Pino
? Description : journalisation à faible surcharge avec sortie JSON
? Caractéristiques principales :
javascriptCopyconst pino = require('pino'); const logger = pino(); logger.info('hello world'); logger.error('this is at error level');
? Outil : débogage
? Description : Petit utilitaire de débogage pour Node.js
? Caractéristiques principales :
javascriptCopyconst debug = require('debug')('http'); debug('booting %o', name);
? Outil : Log4js
? Description : Une conversion du framework log4j en JavaScript
? Caractéristiques principales :
javascriptCopyconst log4js = require("log4js"); log4js.configure({ appenders: { cheese: { type: "file", filename: "cheese.log" } }, categories: { default: { appenders: ["cheese"], level: "error" } } }); const logger = log4js.getLogger("cheese"); logger.error("Cheese is too ripe!");
? Outil : ELK Stack
? Description : Une combinaison puissante pour la gestion et l'analyse des journaux
? Caractéristiques principales :
javascriptCopyconst winston = require('winston'); const Elasticsearch = require('winston-elasticsearch'); const esTransportOpts = { level: 'info', clientOpts: { node: 'http://localhost:9200' } }; const logger = winston.createLogger({ transports: [ new Elasticsearch(esTransportOpts) ] });
? Outil : Sentinelle
? Description : Suivi des erreurs en temps réel et surveillance des performances
? Caractéristiques principales :
javascriptCopyconst Sentry = require("@sentry/node"); Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0" }); try { someFunction(); } catch (e) { Sentry.captureException(e); }
? Outil : Nouvelle relique
? Description : Surveillance complète des performances des applications
? Caractéristiques principales :
javascriptCopyconst newrelic = require('newrelic'); newrelic.setTransactionName('myCustomTransaction'); // Your application code here
? Outil : Loggly
? Description : Service de gestion et d'analyse des journaux basé sur le cloud
? Caractéristiques principales :
javascriptCopyconst winston = require('winston'); const { Loggly } = require('winston-loggly-bulk'); winston.add(new Loggly({ token: "YOUR-TOKEN", subdomain: "YOUR-SUBDOMAIN", tags: ["Winston-NodeJS"], json: true }));
winston.log('info', "Hello World from Node.js!");
Quel que soit l'outil que vous choisissez, la mise en œuvre d'une journalisation structurée peut considérablement améliorer vos capacités d'analyse des journaux :
javascriptCopylogger.info({ event: 'user_login', userId: user.id, timestamp: new Date().toISOString(), ipAddress: req.ip });
En utilisant ces outils et pratiques supplémentaires, vous disposerez d'une stratégie de journalisation complète qui couvre tout, du débogage de base à la surveillance avancée des performances des applications. N'oubliez pas que la clé d'une journalisation efficace consiste à choisir les outils adaptés à vos besoins spécifiques et à appliquer systématiquement les meilleures pratiques dans l'ensemble de votre base de code.
Si vous avez besoin d'aide pour déboguer votre application Web, consultez https://alerty.ai pour en savoir plus sur la surveillance simple du frontend.
Bonne journalisation et que vos applications Node.js fonctionnent correctement ! ??
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!