Spring Boot で例外を含むリクエストとレスポンスを一元的にログに記録する
REST API を開発する場合、すべてのリクエストとレスポンスの包括的なログをキャプチャすることが重要です、入力パラメータ、クラスメソッド、例外を含みます。この集中ログにより、迅速なデバッグと監査が可能になります。
ベスト プラクティス アプローチ
Spring Boot は、このタスクに対して効果的で簡単なソリューションである Actuator モジュールを提供します。 Actuator は、デフォルトで最後の 100 件の HTTP リクエストをログに記録するエンドポイント (/trace または /actuator/httptrace) を提供します。
カスタマイズ
すべてのリクエストをログに記録し、エンドポイントを調整するには特定のニーズに合わせて、次のことができます。
追加考慮事項
Heraku などの他のホスティング プロバイダーは、多くの場合、リクエストのログをサービスとして提供し、カスタム コードの必要性を排除します。
例
Spring Boot でのリクエストとレスポンスのログ記録用にアクチュエーターを構成するにはapplication:
dependencies { implementation 'org.springframework.boot:spring-boot-starter-actuator' } # Security configuration (optional) security { httpBasic {} headers { hsts { enabled = true maxAge = 31536000L # 1 year } } }
Output
/trace エンドポイントは、次のような目的の形式の JSON 応答を生成します。
{ "timestamp": 1656211869816, "message": "Successful request", "path": "/api/users/1", "method": "GET", "status": 200, "timeTaken": 1397 }
の場合例外:
{ "timestamp": 1656211972854, "message": "UserNotFoundException: User with id 9999 not found", "path": "/api/users/9999", "method": "GET", "status": 404, "timeTaken": 2063, "exception": "UserNotFoundException", "error": "User with id 9999 not found" }
以上がSpring Boot REST API リクエスト、レスポンス、例外を一元的にログに記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。