アプリケーション開発には効果的な伐採が重要です。アプリケーションの動作に関する洞察を提供し、デバッグを簡素化します。このチュートリアルでは、Pino Loggerを使用してNode.jsアプリケーションにロギングを実装する方法を示しています。これは、そのパフォーマンスと柔軟性で知られる人気のある選択肢です。
PINOでは、アプリケーションの流れに関する詳細情報や、ログを保存してファイルを分離する機能など、包括的なロギングが可能です。その広範なGithubコミュニティは、その信頼性をさらに強調しています。
このガイドがカバーしています:
最後に、ベストプラクティスとPINOを使用して、node.jsアプリケーションに堅牢なログを実装できます。
先に進む前に、あなたが持っていることを確認してください:
APIエンドポイントテストにPostmanのようなツールを使用することをお勧めします。
このステップでは、Express.jsとMongooseを使用して基本的なnode.js Crudアプリケーションを作成します。このアプローチにより、ロギング機能が現実的なアプリケーションコンテキスト内で実装されます。
CRUDアプリケーションのセットアップについては、MongooseおよびMongodb AtlasでCRUD操作の実行に関するチュートリアルを参照してください。完了すると、Routesの作成、読み取り、更新、削除を備えたnode.jsアプリケーションが表示されます。
コードの変更時に再起動する自動サーバー用のnodemon
をインストールします。
NPMインストール-G - フォースノデモン
-g
フラグはグローバルにインストールし、 --force
は潜在的な競合を処理します。
必要な依存関係をインストールします:Pino、Express-Pino-Logger、およびPino-Retty:
NPMインストールPino Express-Pino-Logger Pino-Retty
さまざまなログレベル(警告、エラー、情報など)のPino Loggerサービスを作成します。このサービスは、node.jsミドルウェアを使用してアプリケーションに統合されます。
services
ディレクトリを作成します。
MKDIRサービス
次のコードを使用して、 loggerService.js
内部services
内のサービスを作成します。
const pino = require( 'pino'); module.exports = pino({prettyprint:true});
これにより、かなりプリントされた出力を備えた基本的なロガーが作成されます。後の手順では、さらに構成をカバーします。
次に、 server.js
ファイルで、Logger Serviceとexpress-pino-logger
インポートします。
const expresspinologger = require( 'Express-Pino-Logger'); const logger = require( './ services/loggerservice');
ロガーサービスでexpress-pino-logger
を構成します。
// ... const loggermiddleware = expresspinologger({ ロガー:ロガー、 自動化:本当、 }); app.use(loggermiddleware); // ...
autoLogging: true
には、ログにJSON応答が含まれます。
ルートハンドラー(例: foodRoutes.js
)で、ロガーをインポートして使用します。
const logger = require( '../ services/loggerservice'); // ... app.get( "/food"、async(request、response)=> { logger.info( 'ルートアクセスを取得'); // ... }); // ...
サーバー( nodemon server.js
)を再起動し、APIエンドポイントをテストします。ターミナルにログ出力が表示されます。
このステップでは、ロガーサービスのカスタマイズとログの読みやすさの向上に焦点を当てています。
loggerService.js
でカスタムログレベルを定義します。
// ... const level = { HTTP:10、 デバッグ:20、 情報:30、 警告:40、 エラー:50、 致命的:60、 }; // ...
loggerService.js
でpino
構成を更新します。
module.exports = pino({ PrettyPrint:本当、 CustomLevels:レベル、 useonllycustomlevels:true、 レベル: 'http'、 });
カスタムレベルでテストします(例: logger.http(...)
)。自動分類を設定: server.js
では、JSON応答が不要な場合はautoLogging: false
。
loggerService.js
でログフォーマットを強化する:
module.exports = pino({ CustomLevels:レベル、 useonllycustomlevels:true、 レベル: 'http'、 PrettyPrint:{ カラー化:本当、 Levelfirst:本当、 翻訳タイム: 'yyyy-dd-mm、h:mm:ss tt'、 }、 });
改善されたログ出力を確認するには、もう一度テストします。
ログをファイルに記述するには、 loggerService.js
のpino
構成を変更します。
module.exports = pino({ CustomLevels:レベル、 useonllycustomlevels:true、 レベル: 'http'、 PrettyPrint:{ カラー化:本当、 Levelfirst:本当、 翻訳タイム: 'yyyy-dd-mm、h:mm:ss tt'、 }、 }、pino.destination( `$ {__ dirname}/logger.log`));
APIをテストします。ログは、 services
ディレクトリのlogger.log
に書き込まれます。
このチュートリアルは、node.jsアプリケーションにピノロギングを実装するための包括的なガイドを提供しました。ベストプラクティスを覚えておいてください:コンテキスト情報、明確な目的、読み取り可能なフォーマットは、効果的なロギングの鍵です。高度な構成オプションについては、公式のPinoドキュメントを調べてください。
以上がnode.jsアプリケーションにログイングを実装する方法pino-loggerの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。