Heim >Web-Frontend >js-Tutorial >Best Practices für die Protokollierung Ihrer Node.js-App

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2024-08-10 06:38:22731Durchsuche

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' })
  ]
});

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'));

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");

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');

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);

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!");

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)
  ]
});

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);
}

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

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
}));

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
});

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!

Stellungnahme:
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