ホームページ >ウェブフロントエンド >jsチュートリアル >LogLayer: TypeScript / JavaScript 用の最新のログ ライブラリ

LogLayer: TypeScript / JavaScript 用の最新のログ ライブラリ

Susan Sarandon
Susan Sarandonオリジナル
2025-01-16 13:08:57172ブラウズ

LogLayer: A Modern Logging Library for TypeScript / JavaScript

プロジェクト間で複数のロギング ライブラリをやりくりすることにうんざりしていませんか? 一貫性のないエラーとメタデータのログに不満を感じていますか? オープンソース ソリューションである LogLayer は、ロギング プロセスを合理化し、開発者のエクスペリエンスを向上させます。

LogLayer とは何ですか?

LogLayer は、一般的なログ ライブラリ (Pino、Winston、Bunyan) およびクラウド プロバイダー (AWS、Google Cloud、DataDog) と互換性のある統合ログ レイヤーとして機能します。 メッセージ、メタデータ、エラーをログに記録し、選択した宛先にログを送信するための一貫した直感的な API を提供します。

これが簡単な例です:

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

LogLayer の主な利点:

  • シームレスなライブラリ切り替え: コードのリファクタリングを行わずに、ロギング ライブラリを簡単に切り替えます。 プロジェクトの途中で Pino から Winston に切り替える必要があることを想像してみてください – LogLayer を使用すると、これが簡単になります。

  • 一貫した API: 統合された API により、ライブラリ間で異なるメソッド名やパラメーターの順序を覚えておく必要がなくなります。 比較:

<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>
  • マルチトランスポートのサポート: ログを複数の宛先 (DataDog とロガーなど) に同時に送信します:
<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>
  • 簡素化されたエラー処理: すべてのライブラリにわたって標準化されたエラー処理。

  • 拡張可能なプラグイン システム: 機密データの秘匿化などの機能用のプラグインを追加します。

  • 簡単なテスト: 組み込みのモックによりテストが簡素化されます。

はじめに:

インストールは簡単です:

<code class="language-bash">npm install loglayer</code>

基本的な使用法:

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

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

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

詳細:

  • 公式ドキュメント
  • GitHub リポジトリ
  • NPM パッケージ

以上がLogLayer: TypeScript / JavaScript 用の最新のログ ライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。