Als Node.js-Entwickler ist die Protokollierung so ziemlich alles, wenn es um das Debuggen, Überwachen und Warten Ihrer Anwendungen geht. Aber verwenden Sie die Best Practices für die Protokollierung? Lassen Sie uns einige Protokollierungstechniken erkunden, die Ihre Node.js-Apps auf die nächste Stufe heben können.
Um mehr zu erfahren, können Sie sich den vollständigen Blogbeitrag ansehen.
? Werkzeug: Winston
? Beschreibung: Eine vielseitige Protokollierungsbibliothek für Node.js
? Hauptmerkmale:
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' }) ] });
? Werkzeug: Morgan
? Beschreibung: Vereinfacht die Protokollierung von HTTP-Anfragen in Express.js
? Hauptmerkmale:
javascriptCopyconst express = require('express'); const morgan = require('morgan'); const app = express(); app.use(morgan('combined'));
? Werkzeug: Bunyan
? Beschreibung: Strukturierte JSON-Protokollierung für Node.js-Anwendungen
? Hauptmerkmale:
javascriptCopyconst bunyan = require('bunyan'); const log = bunyan.createLogger({name: "myapp"}); log.info("Hi"); log.warn({lang: 'fr'}, "Au revoir");
? Werkzeug: Pino
? Beschreibung: Protokollierung mit geringem Overhead mit JSON-Ausgabe
? Hauptmerkmale:
javascriptCopyconst pino = require('pino'); const logger = pino(); logger.info('hello world'); logger.error('this is at error level');
? Tool: debug
? Beschreibung: Kleines Debugging-Dienstprogramm für Node.js
? Hauptmerkmale:
javascriptCopyconst debug = require('debug')('http'); debug('booting %o', name);
? Tool: Log4js
? Beschreibung: Eine Konvertierung des log4j-Frameworks in JavaScript
? Hauptmerkmale:
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!");
? Werkzeug: ELK Stack
? Beschreibung: Eine leistungsstarke Kombination für Protokollverwaltung und -analyse
? Hauptmerkmale:
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) ] });
? Werkzeug: Wachposten
? Beschreibung: Fehlerverfolgung und Leistungsüberwachung in Echtzeit
? Hauptmerkmale:
javascriptCopyconst Sentry = require("@sentry/node"); Sentry.init({ dsn: "https://[email protected]/0" }); try { someFunction(); } catch (e) { Sentry.captureException(e); }
? Werkzeug: Neues Relikt
? Beschreibung: Umfassende Überwachung der Anwendungsleistung
? Hauptmerkmale:
javascriptCopyconst newrelic = require('newrelic'); newrelic.setTransactionName('myCustomTransaction'); // Your application code here
? Werkzeug: Loggly
? Beschreibung: Cloudbasierter Protokollverwaltungs- und Analysedienst
? Hauptmerkmale:
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', "Hallo Welt von Node.js!");
Unabhängig vom gewählten Tool kann die Implementierung einer strukturierten Protokollierung Ihre Protokollanalysefunktionen erheblich verbessern:
javascriptCopylogger.info({ event: 'user_login', userId: user.id, timestamp: new Date().toISOString(), ipAddress: req.ip });
Durch die Verwendung dieser zusätzlichen Tools und Vorgehensweisen verfügen Sie über eine umfassende Protokollierungsstrategie, die alles vom einfachen Debuggen bis zur erweiterten Überwachung der Anwendungsleistung abdeckt. Denken Sie daran, dass der Schlüssel zu einer effektiven Protokollierung in der Auswahl der richtigen Tools für Ihre spezifischen Anforderungen und der konsequenten Anwendung von Best Practices in Ihrer gesamten Codebasis liegt.
Wenn Sie Hilfe beim Debuggen Ihrer Web-App benötigen, schauen Sie sich https://alerty.ai an, um mehr über die einfache Frontend-Überwachung zu erfahren.
Viel Spaß beim Protokollieren und mögen Ihre Node.js-Apps reibungslos laufen! ??
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3