paint-brush
10 の最高の Node.js ロギング ライブラリ@playerzero
52,580 測定値
52,580 測定値

10 の最高の Node.js ロギング ライブラリ

PlayerZero22m2023/02/15
Read on Terminal Reader

長すぎる; 読むには

トップ 10 の Node.js ロギング ライブラリのリストをまとめ、それらを使用するために必要なコードを提供しました。楽しみ!
featured image - 10 の最高の Node.js ロギング ライブラリ
PlayerZero HackerNoon profile picture
0-item

このブログでは、ログ ライブラリを利用することの価値について説明し、Node.js 用に見つけた、最も評価の高い 10 個のログ ツールを紹介します。 @playerzero では、node.js ロギング ライブラリを頻繁に使用して、ログ イベントを作成および管理しています。現在、フロントエンド アプリケーションとバックエンド アプリケーションの両方にとって重要なことを監視する独自のアプローチをどのように導入しているかについて詳しくは、https://www.playerzero.app/ をご覧ください。


  • ピノ

  • ウィンストン

  • バニヤン

  • モーガン

  • ログレベル

  • Log4js

  • Npmlog

  • 轟音

  • トレーサー

  • シグナル


大まかな観点から見ると、Node.js ロギングは、開発者がアプリケーションのイベントとパフォーマンスを追跡し、問題を診断して修正し、システムの動作を監視し、十分な情報に基づいて意思決定を行うのに役立つため、重要です。ロギングはアプリケーションのアクティビティの記録を提供するため、開発者は問題を特定してデバッグし、ユーザーの行動を理解し、システムの全体的なパフォーマンスと安定性を向上させることができます。ロギングは、エラーの検出と修正、システム パフォーマンスの監視、およびセキュリティ インシデントの検出のために、運用環境でも役立ちます。

ロギングとトレース

アプリケーションで何か問題が発生した場合、開発者はスタック トレースを介してそのソースを追跡することができます。しかし… スタック トレースだけに頼っていても、全体像は半分しかわかりません。トレースは、リクエストのフロー、データベース クエリ、外部 API 呼び出し、パフォーマンス メトリックなど、アプリケーションの実行に関する情報を提供します。これは非常に便利です。一般に、トレースは、アプリケーションの動作を詳細なレベルで理解し、パフォーマンスのボトルネックを特定するために使用されます。


ロギングは、全体像の残りの半分を埋めます。ロギングは、エラー、警告、パフォーマンス メトリック、デバッグ情報など、アプリケーションに関連するメッセージとイベントを記録するプロセスです。 Node.js でのログ記録は、問題の診断、ユーザーの行動の理解、およびアプリケーションの全体的なパフォーマンスと安定性の向上に使用されます。また、アプリケーション内のアクティビティの記録も提供されるため、開発者は問題を特定してデバッグし、より多くの情報に基づいて決定を下すことができます。

Node.js のロギング ライブラリを使用する理由

Node.js ロギング ライブラリを使用する必要がある理由はいくつかあります。


  1. デバッグの改善- ログ ライブラリはエラーと問題に関する詳細情報を提供するため、開発者はより効率的に問題を診断して修正できます。
  2. 可視性の向上- ロギングにより、アプリケーションの動作とパフォーマンスを明確に把握できるため、開発者は十分な情報に基づいて決定を下し、システムを改善できます。
  3. パフォーマンスの向上- ロギング ライブラリのパフォーマンスを最適化して、ロギングのオーバーヘッドを削減し、システム全体のパフォーマンスを向上させることができます。
  4. 集中ログ- 多くのログ ライブラリでは、集中ログ サーバーにログを書き込むことができるため、ログ データの収集、表示、分析が容易になります。
  5. カスタマイズ- ログ ライブラリは、カスタム ログ レベル、出力形式、フィルターなど、特定のニーズに合わせてカスタマイズできます。

ロギング レベル

ログ レベルは、ログ メッセージの重要性または重大度を分類する方法です。通常、重大なエラーから情報メッセージまで、いくつかのレベルがあり、各レベルは、ライブラリ内のログ メッセージのフィルタリングに使用できる数値に関連付けられています。最も一般的なレベルは次のとおりです。


FATALログ レベル

当然のことながら、 FATALログ レベルは、アプリケーションの重大なエラーを示す重大度のレベルです。つまり、 FATALレベルのログは、開発者の介入なしではアプリケーションを正常に実行し続けることができないことを示します。


ERRORログ レベル

ERRORログ レベルは、アプリケーションが現在実行可能であることを示しますが、問題が発生しています。通常、これは、アプリケーションで必要なタスクが失敗したこと、つまり、例外、予期しない動作、または不適切な入力があったことを示します。


WARNログレベル

WARN ERRORよりも重大度の低いログ レベルですが、それでも無視すべきではありません。 WARNログは、アプリケーション内の何かがより重大な問題の触媒になる可能性があることを示しているため、問題を事前に特定し、問題が深刻化するのを防ぐために使用できます。


INFOログレベル

INFOログ レベルは、ロギング システムで一般的な情報メッセージを示すために使用されるログ メッセージのタイプです。通常、プロセスの開始、タスクの完了、またはシステムの状態の変化など、アプリケーションまたはシステムで予想される定期的なイベントをログに記録するために使用されます。これらのアラートは、アプリケーションが正常に動作していることを確認するためのものであるため、通常は無視できます。


DEBUGログ レベル

通常、 DEBUGログ レベルは、デバッグ プロセス内でのみ役立つ情報を提供します。 DEBUGログは、最も詳細なタイプのログ メッセージであり、アプリケーションの内部動作の詳細なビューを提供します。 DEBUGログの主な目的は、開発者がシステムの動作を理解し、バグや問題を特定し、問題を診断できるようにすることです。

10 の最高の Node.js ロギング ライブラリとそれらを使い始める方法

#1。ピノ

ピノのメリット

Pino は、10.9K 以上の Github スターと npm での数百万回のダウンロードを誇る、老舗の非常に人気のあるロギング ツールです。 Pino は、Node.js アプリケーションでの使用に適したいくつかの重要な機能を提供するため、Node.js の一般的なロギング ライブラリです。


  • 高速- Pino は、パフォーマンスに重点を置いて、高速かつ軽量になるように設計されています。ログ メッセージにバイナリ形式を使用するため、ログ出力を迅速かつ効率的に生成できます。

  • 構造化ログ- Pino はメッセージを JSON 形式でログに記録します。これにより、ログ データの解析、フィルタリング、および分析が容易になります。これにより、ログ データの検索、視覚化、分析、およびログ データの他のシステムへの統合が容易になります。

  • 拡張が簡単- Pino は高度に拡張できるように設計されており、ログ データをファイルに書き込んだり、ログ データをリモート サーバーに送信したりするなどの追加機能を追加するために使用できる組み込みプラグインが多数含まれています。

  • 低オーバーヘッド- Pino は、リソースの使用が最小限であるため、非常に効率的な Node.js ロギング ライブラリです。 Pino を使用したロギング プロセスは、メッセージを徐々に蓄積し、アプリケーションのスロットリングと 1 秒あたりのリクエスト数の減少につながります。スロットリングは、イベントが複数回発生した場合でも、イベントに接続された関数が指定された時間枠内で 1 回だけ実行されるようにトリガーされる手法です。

  • トランスポート- Pino は、ファイルへの書き込み、コンソールでの表示、Sentry、Azure Application Insights、CouchDB などのプラットフォームの利用など、ログを送信するためのさまざまなオプションを提供します。


Node.js アプリケーションで Pino を使用するには、次の手順に従います。

ピノのインストール

Pino をインストールするには、新しいディレクトリで次のコマンドを実行してインストールします。

 npm install pino


インポート- Node.js アプリケーションで、ファイルの先頭に次のコード行を追加して Pino をインポートします。

 const pino = require('pino');

ピノを使う

初期化- ロガー インスタンスを作成して Pino を初期化します。次に例を示します。

 const logger = pino({ level: 'info' });


このスクリプトは、コンソールにINFO以上のロギング レベルのログを生成します。


レベルを info に設定すると、Pino はINFOWARNERROR 、およびFATALのログ レベルでメッセージをログに記録します。 DEBUGなど、ロギング レベルがINFO未満のメッセージはログに記録されません。


このコードは、ログ レベルが INFO に設定された Pino ロガー インスタンスのみを作成します。ロガー インスタンスを使用して何かをログに記録するまで、ログ メッセージは生成または表示されません。例えば:

 logger.info('This is an info message');

これにより、コンソールに次の出力が生成されます。

 {"level":30,"time":1624825088703,"msg":"This is an info message","pid":1234,"hostname":"my-machine"}


コンソールに表示されるログ データには、ログ レベル、記録されたときのタイムスタンプ、ログに記録されているメッセージ、ログの識別子、およびホスト名が含まれます。


ロギング- loggerインスタンスを使用して、アプリケーション内の他のメッセージをログに記録することもできます。例えば:

 logger.warn('This is a warning message'); logger.error('This is an error message');


出力- デフォルトでは、Pino はコンソールにログを記録します。出力を変更する場合は、ファイルへの書き込み、Sentry などのリモート サービスへのログの送信、Azure Application Insights の使用など、前述の Pino の利用可能なトランスポートのいずれかを使用できます。詳細については、Pino の「既知のトランスポート」セクションを参照してください。

ピノプリティのインストール

Pino のpino-pretty基本 NDJSON フォーマッター機能は、Pino ログ用の優れたシンプルなフォーマッターであり、セットアップも簡単です。起動して実行する方法は次のとおりです。


ステップ 1 - ターミナルで次のコマンドを実行して、Node.js プロジェクトに pino-pretty を依存関係としてインストールします。

 npm install pino-pretty


ステップ 2 - ファイルの先頭に次のコード行を追加して、Node.js アプリケーションにpino-prettyインポートします。

 const pino = require('pino'); const pinoPretty = require('pino-pretty'); const logger = pino({ level: 'info' }); logger.pipe(pinoPretty());


これら 2 つのコード スニペットを使用して、 pino-prettyインストールし、Pino ログをフォーマットするように設定しました。これで、ロガー インスタンスを使用してアプリケーションでメッセージをログに記録できるようになりました。ログは、人間が判読できるきれいな形式でコンソールに表示されます。


How to Debug Node.js with the Best Tools Available by @RisingStackで、Pino を使用したデバッグの詳細をご覧ください。

#2。ウィンストン

ウィンストンのメリット

GitHub で 20,000 を超えるスターを獲得した Winston は、Node.js の非常に人気のあるログ ライブラリです。 Winston は、その包括的な機能セットと使いやすさから、Node.js エコシステムにおける独自のロギング ライブラリです。ウィンストンが際立っている理由のいくつかは次のとおりです。


  • 柔軟性- Winston は高度なカスタマイズが可能で、コンソール、ファイル、リモート サーバーなどの複数の出力にログを書き込むことができるさまざまなログ オプションとトランスポート メカニズムを提供します。
  • クエリ可能なログ- Winston はクエリ可能なログ アーカイブを提供し、ログの検索と分析を容易にします。
  • 使いやすい- Winston には、Node.js アプリケーションへのログインを簡単に開始できるシンプルで使いやすい API があります。必要に応じて開発者がロギング機能を拡張およびカスタマイズできるようにしながら、コア機能の最小限のセットを提供します。
  • 十分に文書化されている - Winston には、その API に関する詳細な情報を提供する包括的な文書があり、開発者が迅速かつ簡単に開始できるように、多数の例とチュートリアルが含まれています。
  • コミュニティ主導- Winston は、大規模で活発な開発者コミュニティを持つオープンソース プロジェクトです。これにより、ライブラリが適切に管理され、バグがなく、最新のトレンドとテクノロジに対応できるように更新されます。

ウィンストンのインストール

Node.js プロジェクトに Winston をインストールするには、端末で次のコマンドを実行して npm パッケージ マネージャーを使用できます。

 npm install winston

ウィンストンの使用

インストールが完了したら、次の行を含めることで、Winston を Node.js コードにインポートして使用できます。

 const winston = require('winston');

次に、Winston ライブラリを使用して、ロギング インスタンスを構成および作成できます。次に例を示します。

 const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console() ] });

これにより、情報レベルとコンソール トランスポートを使用してロガー インスタンスが作成されます。このロガー インスタンスを使用して、アプリケーションでメッセージをログに記録できます。次に例を示します。

 logger.info('Hello World');

これにより、メッセージHello World情報ログ レベルでコンソールに記録されます。

Winston のロギング レベル

Winston には、RFC5424 ドキュメントで概説されているガイドラインに従って配置された 6 つのデフォルトのログ レベルが装備されています。レベルには数値の優先順位が割り当てられ、最も重大度が低い番号が割り当てられます。 6 つのレベルとそれぞれの優先順位の値は次のとおりです。


 { error: 0, warn: 1, info: 2, http: 3, verbose: 4, debug: 5, silly: 6 }


6 つのログ レベルのそれぞれについて、ロガー オブジェクトに対応するメソッドがあります。

 logger.error('error'); logger.warn('warn'); logger.info('info'); logger.verbose('verbose'); logger.debug('debug'); logger.silly('silly');


ログ レベルを表す文字列を log() メソッドに渡すこともできます。

 logger.log('error', 'error message'); logger.log('info', 'info message');


loggerlevelプロパティは、構成したトランスポートに渡されるログ メッセージを指定します。たとえば、 levelプロパティがinfoに設定されている場合、重大度がinfo以上のログ エントリのみが書き込まれ、その他すべてのエントリの優先度が低くなります。これは、現在の構成では、 infowarn 、およびerrorのレベルのログ メッセージのみが出力されることを意味します。

#3。バニヤン

バニヤンのメリット

Bunyan は、ログ データをより構造化して読みやすくすることに重点を置いているため、Node.js のユニークなログ ライブラリです (ログをプレーン テキストではなく JSON オブジェクトとしてシリアル化することでこれを実現しています)。 Bunyan が Github で 7,000 スターを獲得した理由は次のとおりです。


  1. JSON 形式- 他のログ ライブラリとは異なり、Bunyan はデータを JSON 形式でログに記録するため、解析や他のツールやプラットフォームとの統合が容易になります。
  2. 柔軟なログ レベル- Bunyan は、ログの重大度レベルとしきい値を管理するための柔軟なオプションを備えた複数のログ レベルをサポートしています。
  3. シリアライゼーション- Bunyan にはシリアライゼーションと呼ばれる機能があり、関数が JavaScript オブジェクトを JSON で表現可能なオブジェクトに変換します。これにより、特定のロガー インスタンスが、ログ レコード フィールド名をシリアル化関数にリンクするシリアライザーを持つことができます。
  4. 使いやすい API - Bunyan は、ロギング用のシンプルで使いやすい API を提供し、あらゆるスキル レベルの開発者がアクセスできるようにします。
  5. プラグインとトランスポート- Bunyan は、コンソール、ファイル、HTTP、電子メールなどのさまざまなプラグインとトランスポートをサポートしているため、特定のニーズや要件を満たすためにログ出力を簡単にカスタマイズできます。

バニヤンのインストール

Bunyan をインストールするには、ターミナルまたはコマンド プロンプトで次のコマンドを実行します。

 npm install bunyan


これにより、Bunyan ライブラリとその依存関係が Node.js プロジェクトにインストールされます。インストールしたら、コードでライブラリを要求して使用を開始できます。

バニヤンを使う

Bunyan をプロジェクトにインポートします。JavaScript ファイルの先頭に、次の行を追加します。

 const bunyan = require('bunyan');


ロガー インスタンスを作成する- 次に、次のコードを使用してロガー インスタンスを作成します。

 const logger = bunyan.createLogger({ name: 'my-app-name', level: 'info' });


この例では、 nameはアプリケーションの名前であり、level は表示するログの最小レベルを指定します。


メッセージをログに記録する- メッセージをログに記録するには、info、warn、error などの Bunyan のログ メソッドのいずれかを呼び出し、ログに記録するメッセージを次のように渡します。

 logger.info('This is an info log message'); logger.warn('This is a warn log message'); logger.error('This is an error log message');


コードを実行します。最後に、コードを実行すると、ログに記録されたメッセージがコンソールに表示されます。

デフォルトでは、Bunyan は JSON 形式でログを出力するため、ログ管理ツールを使用してログを簡単に解析および分析できます。 Bunyan のストリーム オプションを使用してフォーマットをカスタマイズすることもできます。

#4。モーガン

モーガンのメリット

Morgan は、主にミドルウェアとしての独自の位置付けなど、いくつかの理由から Node.js の独自のロギング ライブラリです。これは他の理由の中でも非常に人気があり、この記事の執筆時点で GitHub には 7.3K のスターがありました。モーガンが人気の理由は次のとおりです。


  1. ミドルウェア ベース- Morgan は Node.js Express フレームワークでミドルウェアとして動作するため、既存の Express ベースのアプリケーションに簡単に統合できます。
  2. カスタマイズ可能- Morgan は、ログ形式からカスタム トークンまで幅広いカスタマイズ オプションを提供し、開発者が特定のニーズに合わせてログを調整できるようにします。
  3. ストリームベース- Morgan は、コンソール、ファイル、またはリモート サーバーなど、さまざまな出力ストリームにログ データを書き込むことができます。
  4. 高速かつ軽量- Morgan は高速かつ軽量になるように設計されているため、パフォーマンスが重要なトラフィックの多いアプリケーションに適しています。
  5. HTTP リクエスト ロギング- Morgan は、HTTP リクエストとレスポンスをログに記録するように特別に設計されています。これは、Web サーバーのパフォーマンスのデバッグと分析に役立ちます。

モーガンのインストール

npm を使用して morgan パッケージをインストールすることから始めます。

 npm install morgan

モーガンの使用

インストール プロセスが完了したら、"require" 関数を使用してライブラリをインポートし、それをミドルウェアとして Express.js アプリケーションに統合する必要があります。


このコードは次のようになります。

 var morgan = require('morgan'); app.use(morgan('dev'));


「dev」引数は、Morgan が提供するフォーマット オプションです。 Morgan は、次の 5 つの異なるログ形式を提供しています。

  1. tiny出力はごくわずかです。
  2. shortには応答時間が含まれ、デフォルトでログが省略されます。
  3. dev開発中に使用するための簡潔で色分けされた出力を提供します
  4. commonは、Apache 結合ログ出力も使用します。
  5. combined標準化された Apache 結合ログ出力を利用します。


以下に示すように、Morgan をアプリケーションに統合するときに適切な引数を使用して、これらの形式から選択できます。

 app.use(morgan('combined')); app.use(morgan('common')); app.use(morgan('dev')); app.use(morgan('short')); app.use(morgan('tiny'));

#5。ログレベル

ログレベルの利点

Loglevel は、Github で 2.4K のスターがあり、ここにリストされている他のオプションのいくつかよりも少し人気がありませんが、それでも優れた軽量のログ ライブラリです。 loglevel が Node.js の独自のロギング ライブラリである理由をいくつか次に示します。


  1. 最小限のコード フットプリント- loglevel は非常に軽量なライブラリであり、最小限のコード オーバーヘッドが必要な状況に最適です。
  2. 動的ログ レベル- loglevel は動的ログ レベルを提供します。これにより、実行時にログ レベルを変更できるため、コードを変更することなく、さまざまなレベルのログ詳細を簡単に切り替えることができます。
  3. シンプルな API - loglevel の API はシンプルで、メッセージを記録するための使いやすく柔軟な方法を提供します。
  4. ブラウザーの互換性- loglevel は Node.js と Web ブラウザーの両方と互換性があるため、さまざまな環境でログを記録するための多目的な選択肢になります。
  5. クロスプラットフォームの互換性- loglevel は、広く使用されているロギング ライブラリである log4js の上に構築されており、異なるプラットフォーム間での互換性を保証します。

ログレベルのインストール

ログレベルを設定するには、最初に npm を使用してインストールする必要があります。

 npm install loglevel

ログレベルの使用

インストールしたら、Node.js プロジェクトにインポートし、ログ レベルを設定して使用を開始できます。


 const log = require('loglevel'); log.setLevel(log.levels.ERROR);


ログ レベルをERROR,重大度レベルがERRORのログ メッセージのみがログに記録されるように指定されます。ログ レベルを設定したら、次の方法を使用して、さまざまなレベルでメッセージをログに記録できます。


 log.trace('This is a trace message'); log.debug('This is a debug message'); log.info('This is an info message'); log.warn('This is a warning message'); log.error('This is an error message');


設定したログ レベルによって、ログに記録されるメッセージと無視されるメッセージが決まります。たとえば、ログ レベルが info に設定されている場合、 log.infoおよび log.warn または log.error を使用してログに記録されたメッセージのみが表示されます。

#6。 Log4js

Log4js の利点

もちろん、兄弟である Log4js を挙げずに loglevel について言及することはできません。 Log4js は、人気のある Java ロギング ライブラリ Log4j のポートとして開始された JavaScript ロギング ライブラリです。 JavaScript アプリケーションに同様のログ ソリューションを提供するために作成され、その後、高度なログ機能と機能を提供するように進化しました。 Github で 5.6k を超えるスターがあり、Log4js が非常に人気がある理由のいくつかを以下に示します。


  • 構成の柔軟性- Log4js は、ログ レベル、さまざまな種類のアペンダー (コンソール、ファイル、ネットワークなど)、アプリケーションのさまざまな部分にさまざまなログ構成を指定する機能など、さまざまなロギング オプションを提供します。
  • カスタム アペンダー- Log4js はカスタム アペンダーの作成をサポートしているため、開発者はライブラリを拡張して特定のログ要件を満たすことができます。
  • ログ コンテキストのサポート- Log4js を使用すると、開発者はログ メッセージをユーザーのリクエスト データなどの追加のコンテキスト情報と関連付けて、ログ メッセージをデバッグに役立つものにすることができます。
  • 動的なログ レベルの構成- Log4js は実行時のログ レベルの変更をサポートしているため、運用環境でのログの管理が容易になります。
  • 他のツールとの統合- Log4js には、Logstash や Graylog などの一般的なツールのサポートが組み込まれているため、ロギングをより広範なアプリケーションの監視および分析ワークフローに簡単に統合できます。

Log4js のインストール

Log4js をインストールするには、端末で次のコマンドを実行して npm パッケージ マネージャーを使用できます。


 npm install log4js


これにより、最新バージョンの Log4js とその依存関係がインストールされます。次に、Node.js アプリケーションでライブラリを要求し、それを使用してメッセージをログに記録できます。

Log4js の使用

Log4js の使用を開始するには、まずコードでそれを必要とし、構成します。

 const log4js = require('log4js'); log4js.configure({ appenders: { console: { type: 'console' } }, categories: { default: { appenders: ['console'], level: 'info' } } }); const logger = log4js.getLogger();


その後、ロガーを使用して、さまざまなレベルでメッセージをログに記録できます。

 logger.trace('Entering cheese testing'); logger.debug('Got cheese.'); logger.info('Cheese is Gouda.'); logger.warn('Cheese is quite smelly.'); logger.error('Cheese is too ripe!'); logger.fatal('Cheese was breeding ground for listeria.');


Log4js を使用して、異なるログ レベルで複数のアペンダー (コンソールとファイル) にメッセージを記録する例を次に示します。

 const log4js = require('log4js'); log4js.configure({ appenders: { console: { type: 'console' }, file: { type: 'file', filename: 'app.log' } }, categories: { default: { appenders: ['console'], level: 'info' }, file: { appenders: ['file'], level: 'error' } } }); const logger = log4js.getLogger(); const fileLogger = log4js.getLogger('file'); logger.info('This is an informational message'); fileLogger.error('This is an error message');


この例では、カテゴリ「デフォルト」のロガーは、レベル情報以上のメッセージをコンソールに記録するように構成されています。カテゴリが「ファイル」のロガーは、エラーレベル以上のメッセージをファイルに記録するように構成されています。 2 つのロガーは、メッセージをそれぞれのアペンダーに記録するために、同じ意味で使用できます。

#7。 Npmlog

Npmlog のメリット

npmlog の独自の価値は、そのシンプルさと最小限のオーバーヘッドにあり、小規模またはパフォーマンス重視のプロジェクトでの使用に適しています。構成が簡単で、npm エコシステムとシームレスに統合できるため (npm の公式ロガー ユーティリティであるため驚くことではありません)、軽量のログ ソリューションを探している開発者に人気があります。 npmlog がリストを作成した理由は次のとおりです。


  1. 軽量- npmlog はコードベースが小さく、オーバーヘッドが最小限であるため、小規模またはパフォーマンス重視のプロジェクトに適しています。
  2. npm との簡単な統合- npmlog は、npm エコシステム内で使用するために特別に設計されており、他の npm パッケージやツールと簡単に統合できます。
  3. カスタマイズ可能- npmlog を使用すると、ログ レベル、ストリーム、プレフィックスをカスタマイズできるため、ログの生成方法と表示方法を完全に制御できます。
  4. 汎用性- npmlog は、小さなスクリプトから大規模なアプリケーションまで、幅広いプロジェクトに適しており、用途が広く柔軟なロギング ツールです。
  5. 使いやすい - npmlog には簡単な API があり、必要なセットアップは最小限であるため、Node.js プロジェクトへのログインをすばやく簡単に開始できます。

Npmlog のインストール

npmlog をインストールするには、マシンに Node.js と npm (Node Package Manager) がインストールされている必要があります。その後、ターミナルまたはコマンド プロンプトで次のコマンドを実行できます。

 npm install npmlog


これにより、最新バージョンの npmlog とその依存関係がダウンロードされてインストールされ、Node.js プロジェクトで使用できるようになります。

Npmlog の使用

Node.js プロジェクトで npmlog を使用する方法の例を次に示します。

 const log = require('npmlog'); log.level = 'verbose'; log.verbose('This is a verbose message'); log.info('This is an informational message'); log.warn('This is a warning'); log.error('This is an error');


この例では、 npmlogモジュールを要求し、それを変数に割り当てることから始めます。次に、ログ レベルをverboseに設定します。これは、ログ レベルがverboseinfowarn 、およびerrorのメッセージが表示されることを意味します。次に、 verboseinfowarn 、およびerrorメソッドを使用して、さまざまなレベルでメッセージをログに記録します。


デフォルトでは、npmlog はprocess.stderrに書き込みます。 process.stdoutに書き込む必要がある場合は、 log.streamプロパティを使用できます。

#8。轟音

咆哮の利点

roarr ライブラリは、初期化を必要とせずに構造化データを生成するように設計された Node.js ロギング ツールです。コマンドライン インターフェイス (CLI) を備えており、環境変数をサポートしているため、用途が広く使いやすいです。さらに、roarr は Node.js とブラウザー環境の両方と互換性があるため、幅広いアプリケーションに対応する多用途のログ ソリューションになります。


以下に、roarr ライブラリの独自の価値を際立たせる重要なポイントをいくつか示します。


  1. 構造化ログ- ライブラリは構造化された形式でログを生成し、機械可読ツールを使用してログを簡単に処理および分析できるようにします。
  2. 豊富なメタデータ- roarr は、問題を診断し、ログの全体的な品質を向上させるために使用できる、要求と応答の情報などの豊富なメタデータ セットを提供します。
  3. 人間が読める- 構造化された形式にもかかわらず、roarr ログは人間が読めるように設計されているため、ログのコンテキストと内容を簡単に理解できます。
  4. 使いやすい- このライブラリは、ロギング用のシンプルで直感的な API を提供し、不要な複雑さはありません。
  5. カスタマイズ可能- roarr ライブラリを使用すると、ログ レベル、ストリーム、およびメタデータをカスタマイズするためのオプションを含め、ログの外観と内容をカスタマイズできます。

Roarrのインストール

まず、npm を使用して roarr をインストールします。

 npm install roarr

咆哮を使う

次に、roarr をコードにインポートしてロガーを作成します。

 const Roarr = require('roarr').default; const logger = new Roarr({ context: { service: 'my-service' } });

logメソッドを使用してメッセージをログに記録します。

 logger.info('Hello, world!');

デフォルトでは、roarr ログはコンソールに出力されます。 streamオプションを使用して、ファイルなどの別のストリームを指定することで、ログ出力をカスタマイズできます。

 const Roarr = require('roarr').default; const fs = require('fs'); const logger = new Roarr({ context: { service: 'my-service' }, stream: fs.createWriteStream('./my-service.log') });

これは、roarr の使用方法の基本的な例にすぎません。利用可能なオプションや機能は他にもたくさんあります。詳細については、roarr の公式ドキュメントを参照してください。

#9。トレーサー

トレーサーの利点

Tracer は、Node.js コミュニティによって開発された、Node.js アプリケーション用のオープンソース ロギング ライブラリです。 Node.js アプリケーションでメッセージとデバッグ情報を記録するための効率的かつ柔軟な方法を提供するように設計されています。 Tracer は、ボランティアのチームによって積極的に維持および開発されており、Github で誰でも使用および貢献できます。これを独自のログ ライブラリにする機能の一部を次に示します。


  1. 非同期ロギング- Tracer は非同期ロギングを使用します。これは、ログがプログラムの実行をブロックしないことを意味します。
  2. 構造化ログ- Tracer は構造化ログを提供します。つまり、ログはキーと値のペアに編成され、ログ データの検索、分析、視覚化が容易になります。
  3. カスタマイズ可能な出力- Tracer はカスタマイズ可能な出力形式を提供し、開発者がコンソール、ファイル、または AWS CloudWatch などのクラウドベースのサービスを含む、ログの形式と宛先を選択できるようにします。
  4. リッチ ロギング コンテキスト- Tracer は、リクエスト ID、ユーザー ID、その他の情報などのメタデータをログに添付する機能を含む、リッチ ロギング コンテキストを提供します。
  5. ミドルウェア サポート- Tracer はミドルウェア サポートを提供し、開発者が Express.js または Koa.js アプリケーションに簡単にロギングを追加できるようにします。

トレーサーのインストール

Tracer は Node Package Manager (npm) を使用してインストールできます。トレーサーをインストールする手順は次のとおりです。


  1. ターミナルまたはコマンド プロンプトを開きます
  2. 現在のディレクトリを Node.js プロジェクト ディレクトリに変更します。
  3. 次のコマンドを実行して Tracer をインストールします。


 npm install tracer


これにより、プロジェクトに依存関係として Tracer がインストールされます。その後、コードでそれを要求し、それを使用してメッセージをログに記録することができます。

トレーサーの使用

コードで Tracer を使用する方法の例を次に示します。


 const tracer = require('tracer'); const logger = tracer.console(); logger.info('Starting the application...');


この例では、最初に Tracer ライブラリを必要とし、次にtracer.console()メソッドを使用してコンソール ロガーを作成します。最後に、ロガー オブジェクトのinfoメソッドを使用して、情報メッセージをログに記録します。


Tracer を使用する別の例を次に示します。

 const tracer = require('tracer'); const logger = tracer.dailyfile({root: './logs', maxLogFiles: 10}); logger.error('An error has occurred:', new Error('Something went wrong'));


この例では、 tracer.dailyfileメソッドを使用して、日ごとのローテーション ファイルにログを書き込むファイル ロガーを作成しています。 rootオプションはログ ファイルが保存されるディレクトリを指定し、 maxLogFilesオプションは保持されるログ ファイルの数を制限します。


最後に、ロガー オブジェクトのerrorメソッドを使用してエラー メッセージをエラー オブジェクトと共にログに記録し、発生したエラーに関する詳細情報を提供します。

#10。シグナル

シグナルのメリット

その Github ページは、「ハッキング可能で、コアまで構成可能」であることを誇っています。これが、Signale が Node.js コミュニティでこれほど愛されているロギング ライブラリである理由の主要な部分です。このライブラリは、Node.js アプリケーションでメッセージをログに記録しようとするときに開発者が直面する問題 (ログが雑然として読みにくいなど) の解決策として作成されました。パックから際立っている理由は次のとおりです。


  1. カスタマイズ可能なログ出力- Signale はさまざまなカスタマイズ可能なログ出力を提供し、開発者が単純なコンソール出力から JSON や Logfmt などのより高度な出力まで、ニーズに最適な出力を選択できるようにします。
  2. 直感的な API - Signale にはシンプルで直感的な API があり、開発者はロギングに慣れていない人でも簡単に使用および理解できます。
  3. スタイル付き出力- Signale はスタイル付き出力を提供し、ログをより読みやすく視覚的に魅力的にし、重要なログ メッセージをすばやく簡単に識別できるようにします。
  4. 豊富なログ コンテキスト- Signale は、タイムスタンプやログ レベルなどの豊富なログ コンテキストを提供し、ログの分析と理解を容易にします。
  5. アクティブなコミュニティ- Signale には、開発者と貢献者の大規模でアクティブなコミュニティがあり、ライブラリが適切に維持され、最新のテクノロジとベスト プラクティスで最新であることを保証します。

シグナルのインストール

Signale をインストールするには、ターミナルで次のコマンドを実行して、Node.js パッケージ マネージャーである npm を使用できます。

 npm install signale


または、端末で次のコマンドを実行して、yarn を使用して Signale をインストールすることもできます。

 yarn add signale


インストールしたら、Signale を Node.js アプリケーションにインポートし、それを使用してメッセージとデバッグ情報をログに記録できます。

シグナルの使用

Signale を Node.js アプリケーションにインポートし、それを使用してメッセージをログに記録する例を次に示します。


 const signale = require('signale'); // Log an info message signale.info('Starting up the server'); // Log a success message signale.success('Server started successfully'); // Log a warning message signale.warn('Low memory warning'); // Log an error message signale.error(new Error('An error occurred while processing data'));


この例では、 require関数を使用して Signale を Node.js アプリケーションにインポートします。次に、Signale が提供するinfosuccesswarnerrorのさまざまなログ メソッドを使用して、さまざまな種類のメッセージをログに記録します。これらの方法にはそれぞれ特徴的な記号と色があり、ログ メッセージの種類を簡単に識別できます。


追加のロギング方法やカスタマイズ オプションなど、Signale の使用方法の詳細については、 Signale のドキュメント を参照してください。


Node.js ログ ライブラリを使用してデバッグ プロセスを最適化する

Node.js アプリケーションをデバッグするための迅速で効率的な方法をお探しですか?この記事で言及されている 1 つまたは複数のライブラリを確認してください。それぞれが優れたオプションです。ただし、Pino は、その価値があるため、私たちの個人的なログ ライブラリを選択しています 😉


これらのログ ライブラリは、テスト/開発環境と本番環境の両方で Node.js アプリケーションをデバッグする際に重要であることが証明されています。


さらに、それらを PlayerZero のような監視ソリューションと統合することで、Node.js アプリケーションのパフォーマンスについてさらに深い洞察を得ることができます。


デモを予約して、PlayerZero がバックエンド アプリケーションのパフォーマンスを最適化するのにどのように役立つかを今すぐ学びましょう!


ここにも掲載されています。