Rumah > hujung hadapan web > tutorial js > LogLayer: Perpustakaan Pengelogan Moden untuk TypeScript / JavaScript

LogLayer: Perpustakaan Pengelogan Moden untuk TypeScript / JavaScript

Susan Sarandon
Lepaskan: 2025-01-16 13:08:57
asal
167 orang telah melayarinya

LogLayer: A Modern Logging Library for TypeScript / JavaScript

Bosan menyulap berbilang perpustakaan pembalakan merentas projek? Kecewa dengan ralat yang tidak konsisten dan pengelogan metadata? LogLayer, penyelesaian sumber terbuka, menyelaraskan proses pengelogan anda dan meningkatkan pengalaman pembangun.

Apakah LogLayer?

LogLayer bertindak sebagai lapisan pengelogan bersatu, serasi dengan perpustakaan pengelogan popular (Pino, Winston, Bunyan) dan penyedia awan (AWS, Google Cloud, DataDog). Ia menawarkan API intuitif yang konsisten untuk mengelog mesej, metadata dan ralat, menghalakan log anda ke destinasi pilihan anda.

Berikut ialah contoh ringkas:

<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>
Salin selepas log masuk

Kelebihan Utama LogLayer:

  • Penukaran Perpustakaan yang Lancar: Tukar perpustakaan pengelogan dengan mudah tanpa pemfaktoran semula kod. Bayangkan anda perlu menukar daripada Pino kepada projek pertengahan Winston – LogLayer menjadikan perkara ini tidak menyakitkan.

  • API Konsisten: API bersatu menghapuskan keperluan untuk mengingati nama kaedah dan susunan parameter yang berbeza merentas perpustakaan. Bandingkan:

<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>
Salin selepas log masuk
  • Sokongan Pelbagai Pengangkutan: Hantar log ke berbilang destinasi (DataDog dan pembalak anda, contohnya) serentak:
<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>
Salin selepas log masuk
  • Pengendalian Ralat Ringkas: Pengendalian ralat piawai merentas semua pustaka.

  • Sistem Pemalam Boleh Diperluas: Tambahkan pemalam untuk ciri seperti menyunting data sensitif.

  • Ujian Mudah: Olok-olok terbina dalam memudahkan ujian.

Bermula:

Pemasangan adalah mudah:

<code class="language-bash">npm install loglayer</code>
Salin selepas log masuk

Penggunaan asas:

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

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

log.info('Hello world!')</code>
Salin selepas log masuk

Ketahui Lebih Lanjut:

  • Dokumentasi Rasmi
  • Repositori GitHub
  • Pakej NPM

Atas ialah kandungan terperinci LogLayer: Perpustakaan Pengelogan Moden untuk TypeScript / JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan