En tant que développeur Node.js, la journalisation est à peu près essentielle lorsqu'il s'agit de débogage, de surveillance et de 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
? Principales caractéristiques :
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
? Principales caractéristiques :
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
? Principales caractéristiques :
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
? Principales caractéristiques :
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
? Principales caractéristiques :
javascriptCopyconst debug = require('debug')('http'); debug('booting %o', name);
? Outil : Log4js
? Description : Une conversion du framework log4j en JavaScript
? Principales caractéristiques :
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 : pile ELK
? Description : Une combinaison puissante pour la gestion et l'analyse des journaux
? Principales caractéristiques :
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 et surveillance des performances en temps réel
? Principales caractéristiques :
javascriptCopyconst Sentry = require("@sentry/node"); Sentry.init({ dsn: "https://[email protected]/0" }); try { someFunction(); } catch (e) { Sentry.captureException(e); }
? Outil : Nouvelle relique
? Description : Surveillance complète des performances des applications
? Principales caractéristiques :
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
? Principales caractéristiques :
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 ! ??
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3