ホームページ >ウェブフロントエンド >jsチュートリアル >LogLayer: 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>
<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>
詳細:
以上がLogLayer: TypeScript / JavaScript 用の最新のログ ライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。