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: debuggen
? 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://examplePublicKey@o0.ingest.sentry.io/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 hin 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 Loggen und mögen Ihre Node.js-Apps reibungslos laufen! ??
Das obige ist der detaillierte Inhalt vonBest Practices für die Protokollierung Ihrer Node.js-App. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!