Heim > Web-Frontend > js-Tutorial > LogLayer: Eine moderne Protokollierungsbibliothek für TypeScript/JavaScript

LogLayer: Eine moderne Protokollierungsbibliothek für TypeScript/JavaScript

Susan Sarandon
Freigeben: 2025-01-16 13:08:57
Original
207 Leute haben es durchsucht

LogLayer: A Modern Logging Library for TypeScript / JavaScript

Müden Sie es, mehrere Protokollierungsbibliotheken projektübergreifend zu jonglieren? Sind Sie frustriert über die inkonsistente Fehler- und Metadatenprotokollierung? LogLayer, eine Open-Source-Lösung, optimiert Ihren Protokollierungsprozess und verbessert die Entwicklererfahrung.

Was ist LogLayer?

LogLayer fungiert als einheitliche Protokollierungsschicht, kompatibel mit gängigen Protokollierungsbibliotheken (Pino, Winston, Bunyan) und Cloud-Anbietern (AWS, Google Cloud, DataDog). Es bietet eine konsistente, intuitive API zum Protokollieren von Nachrichten, Metadaten und Fehlern und leitet Ihre Protokolle an das von Ihnen gewählte Ziel weiter.

Hier ist ein kurzes Beispiel:

<code class="language-typescript">import { LogLayer } from 'loglayer'
import { PinoTransport } from '@loglayer/transport-pino'
import pino from 'pino'

// Configure LogLayer with Pino
const log = new LogLayer({
  transport: new PinoTransport({ logger: pino() })
})

// Log with metadata
log.withMetadata({ userId: '123', action: 'login' })
   .info('User logged in successfully')

// Contextual logging (persists across calls)
log.withContext({ requestId: '123' })
log.info('Processing request') // requestId included

try {
  // ... potential error-throwing code
} catch (error) {
  log.withError(error)
     .withMetadata({ userId: '123' })
     .error('User request processing failed')
}</code>
Nach dem Login kopieren

Hauptvorteile von LogLayer:

  • Nahtloser Bibliothekswechsel: Einfacher Wechsel von Protokollierungsbibliotheken ohne Code-Refactoring. Stellen Sie sich vor, Sie müssten mitten im Projekt von Pino zu Winston wechseln – LogLayer macht das schmerzlos.

  • Konsistente API: Eine einheitliche API macht es überflüssig, sich bibliotheksübergreifend unterschiedliche Methodennamen und Parameterreihenfolgen zu merken. Vergleichen Sie:

<code>// LogLayer's consistent approach:
log.withMetadata({ some: 'data' }).info('my message')

// Inconsistent APIs without LogLayer:
winston.info('my message', { some: 'data' })     // winston
bunyan.info({ some: 'data' }, 'my message')      // bunyan</code>
Nach dem Login kopieren
  • Multi-Transport-Unterstützung: Senden Sie Protokolle gleichzeitig an mehrere Ziele (z. B. DataDog und Ihren Logger):
<code class="language-typescript">import { LogLayer } from 'loglayer'
import { datadogLogs } from '@datadog/browser-logs'
import { PinoTransport } from "@loglayer/transport-pino"
import { DatadogBrowserLogsTransport } from "@loglayer/transport-datadog-browser-logs"

// Datadog initialization (replace placeholders)
datadogLogs.init({
  clientToken: '<client_token>',
  site: '<datadog_site>',
  forwardErrorsToLogs: true,
  sampleRate: 100
})

const log = new LogLayer({
  transport: [
    new PinoTransport({ logger: pino() }),
    new DatadogBrowserLogsTransport({ logger: datadogLogs })
  ]
})

// Logs sent to both Pino and DataDog
log.info('User logged in successfully')
</datadog_site></client_token></code>
Nach dem Login kopieren
  • Vereinfachte Fehlerbehandlung:Standardisierte Fehlerbehandlung in allen Bibliotheken.

  • Erweiterbares Plugin-System: Fügen Sie Plugins für Funktionen wie das Schwärzen vertraulicher Daten hinzu.

  • Müheloses Testen: Integrierte Mocks vereinfachen das Testen.

Erste Schritte:

Die Installation ist einfach:

<code class="language-bash">npm install loglayer</code>
Nach dem Login kopieren

Grundlegende Verwendung:

<code class="language-typescript">import { LogLayer, ConsoleTransport } from 'loglayer'

const log = new LogLayer({ transport: new ConsoleTransport({ logger: console }) })

log.info('Hello world!')</code>
Nach dem Login kopieren

Mehr erfahren:

  • Offizielle Dokumentation
  • GitHub-Repository
  • NPM-Paket

Das obige ist der detaillierte Inhalt vonLogLayer: Eine moderne Protokollierungsbibliothek für TypeScript/JavaScript. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage