Heim > Web-Frontend > js-Tutorial > Hauptteil

Best Practices für die Protokollierung Ihrer Node.js-App

WBOY
Freigeben: 2024-08-10 06:38:22
Original
673 Leute haben es durchsucht

Logging Best Practices For Your Node.js App

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.

1. Winston: Das Schweizer Taschenmesser des Holzeinschlags

? Werkzeug: Winston
? Beschreibung: Eine vielseitige Protokollierungsbibliothek für Node.js
? Hauptmerkmale:

  • Mehrere Transportoptionen (Konsole, Datei, Datenbank)
  • Anpassbare Protokollebenen
  • Unterstützt die Protokollierung in verschiedenen Formaten (JSON, Klartext)
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' })
  ]
});
Nach dem Login kopieren

2. Morgan: HTTP Request Logger Middleware

? Werkzeug: Morgan
? Beschreibung: Vereinfacht die Protokollierung von HTTP-Anfragen in Express.js
? Hauptmerkmale:

  • Vordefinierte Protokollierungsformate
  • Benutzerdefinierte Token-Unterstützung
  • Einfache Integration mit Express.js
javascriptCopyconst express = require('express');
const morgan = require('morgan');

const app = express();
app.use(morgan('combined'));
Nach dem Login kopieren

3. Bunyan: JSON-Protokollierung für Node.js

? Werkzeug: Bunyan
? Beschreibung: Strukturierte JSON-Protokollierung für Node.js-Anwendungen
? Hauptmerkmale:

  • Standardmäßig JSON-Protokollformat
  • Unterstützt Kinderlogger
  • Integrierte CLI zum Anzeigen von Protokollen
javascriptCopyconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});

log.info("Hi");
log.warn({lang: 'fr'}, "Au revoir");
Nach dem Login kopieren

4. Pino: Superschneller Node.js Logger

? Werkzeug: Pino
? Beschreibung: Protokollierung mit geringem Overhead mit JSON-Ausgabe
? Hauptmerkmale:

  • Extrem schnelle Leistung
  • Automatische Protokollrotation
  • Unterstützt Kinderlogger
javascriptCopyconst pino = require('pino');
const logger = pino();

logger.info('hello world');
logger.error('this is at error level');
Nach dem Login kopieren

5. debug: Winziges Debugging-Dienstprogramm

? Tool: debuggen
? Beschreibung: Kleines Debugging-Dienstprogramm für Node.js
? Hauptmerkmale:

  • Leicht und einfach zu bedienen
  • Selektives Debuggen mit Namespaces
  • Browserunterstützung
javascriptCopyconst debug = require('debug')('http');

debug('booting %o', name);
Nach dem Login kopieren

6. Log4js: Flexible Protokollierung für JavaScript

? Tool: Log4js
? Beschreibung: Eine Konvertierung des log4j-Frameworks in JavaScript
? Hauptmerkmale:

  • Hierarchische Protokollierungsebenen
  • Mehrere Ausgabe-Appender
  • Konfigurierbare Layouts
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!");
Nach dem Login kopieren

7. Elasticsearch, Logstash und Kibana (ELK Stack)

? Werkzeug: ELK Stack
? Beschreibung: Eine leistungsstarke Kombination für Protokollverwaltung und -analyse
? Hauptmerkmale:

  • Zentralisierte Protokollierung
  • Echtzeit-Protokollanalyse
  • Visualisierungen und Dashboards
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)
  ]
});
Nach dem Login kopieren

8. Sentry: Fehlerverfolgung und Leistungsüberwachung

? Werkzeug: Wachposten
? Beschreibung: Fehlerverfolgung und Leistungsüberwachung in Echtzeit
? Hauptmerkmale:

  • Automatische Fehlererfassung
  • Release-Tracking
  • Leistungsüberwachung
javascriptCopyconst Sentry = require("@sentry/node");

Sentry.init({ dsn: "https://examplePublicKey@o0.ingest.sentry.io/0" });

try {
  someFunction();
} catch (e) {
  Sentry.captureException(e);
}
Nach dem Login kopieren

9. Neues Relikt: Überwachung der Anwendungsleistung

? Werkzeug: Neues Relikt
? Beschreibung: Umfassende Überwachung der Anwendungsleistung
? Hauptmerkmale:

  • Echtzeit-Leistungsmetriken
  • Fehleranalyse
  • Kundenspezifische Instrumentierung
javascriptCopyconst newrelic = require('newrelic');

newrelic.setTransactionName('myCustomTransaction');
// Your application code here

Nach dem Login kopieren

10. Loggly: Cloudbasiertes Protokollmanagement

? Werkzeug: Loggly
? Beschreibung: Cloudbasierter Protokollverwaltungs- und Analysedienst
? Hauptmerkmale:

  • Zentralisierte Protokollverwaltung
  • Echtzeit-Protokollsuche und -Analyse
  • Benutzerdefinierte Dashboards und Warnungen
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
}));
Nach dem Login kopieren

winston.log('info', "Hallo Welt von Node.js!");

Bonus-Tipp: Strukturierte Protokollierung

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
});
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage