このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください
ロガー
NocoBaseは、pino をベースにした高性能なロギングシステムを提供しています。context を利用できる場所であればどこでも、ctx.logger を通じてロガーインスタンスを取得し、プラグインやシステムの実行中に重要なログを記録できます。
基本的な使い方
これらのメソッドは、異なるログレベル(重要度が高い順)に対応しています。
ログ形式
各ログ出力は構造化されたJSON形式で、デフォルトで以下のフィールドが含まれます。
出力例:
コンテキストバインディング
ctx.logger は、現在のプラグイン、モジュール、またはリクエスト元などのコンテキスト情報を自動的に注入し、ログがその発生源をより正確に追跡できるようにします。
出力例(コンテキスト付き):
カスタムロガー
プラグイン内でカスタムロガーインスタンスを作成し、デフォルト設定を継承または拡張できます。
子ロガーは、親ロガーの設定を継承し、コンテキストを自動的に付加します。
ログレベルの階層
Pinoのログレベルは、数値が大きいほど重要度が高く、小さいほど優先度が低いという定義に従っています。
以下に、ログレベルの 完全な階層表を示します。
Pinoは、現在の level 設定以上のログのみを出力します。例えば、ログレベルが info の場合、debug および trace のログは無視されます。
プラグイン開発におけるベストプラクティス
-
コンテキストロガーを使用す る
プラグイン、モデル、またはアプリケーションのコンテキストでctx.loggerを使用すると、発生源情報を自動的に含めることができます。 -
ログレベルを使い分ける
errorを使用してビジネス例外を記録します。infoを使用して状態の変化を記録します。debugを使用して開発デバッグ情報を記録します。
-
ログの過剰な出力を避ける
特にdebugおよびtraceレベルでは、開発環境でのみ有効にすることをお勧めします。 -
構造化データを使用する
文字列を連結するのではなく、オブジェクトパラメータを渡すことで、ログの分析とフィルタリングに役立ちます。
これらのプラクティスに従うことで、開発者はプラグインの実行をより効率的に追跡し、問題をトラブルシューティングし、ロギングシステムの構造化と拡張性を維持できます。

