Java Spring 環境においてデバック方法は大きく2つです。
IDEを使用したデバッグ
IDEを使用したデバッグは、開発者がコードを実行中に
ブレークポイントを設定して、特定の行や条件で実行を
停止させる機能です。
ブレークポイントの設定
コード内の任意の行にブレークポイントを設定します。
このブレークポイントがある行にプログラムの実行が到達すると、IDEはそこで実行を一時停止します。
ステップ実行
実行を一時停止した後、一行ずつコードを実行することができます(ステップオーバー)、または関数内に入って行く(ステップイン)、または関数から抜ける(ステップアウト)などの操作を行うことができます。
変数の検査
実行を停止した状態で、ローカル変数やインスタンス変数の値を確認することができます。これにより、変数の値が予期したものであるかを確認し、バグの原因を特定できます。
条件付きブレークポイント
特定の条件が真のときのみブレークポイントで停止させることができます。これにより、問題が発生する特定のシナリオをデバッグしやすくなります。
例外ブレークポイント
例外が投げられた時点で実行を停止するように設定することができ、例外の原因をより簡単に特定できます。
ログ出力でデバック
ログ出力は、アプリケーションの実行時の情報を外部に記録するための手法です。Spring Bootでは、以下のステップでログを設定し利用します
ログフレームワークの選択
logbackやlog4j2は、Javaのログフレームワークの中でよく使用されるものです。Spring Bootはlogbackをデフォルトで使用しますが、log4j2など他のログライブラリに変更することもできます。
ログレベルの設定
application.propertiesまたはapplication.ymlファイルでログレベルを設定します。たとえば、logging.level.org.springframework.web=DEBUGと設定すると、Spring FrameworkのWeb関連のクラスのデバッグ情報が出力されます。
ログの出力
コード内でログを出力するには、Loggerオブジェクトを使用してメッセージを記録します。例えば、logger.debug("Debug message")と記述すると、デバッグレベルのログが出力されます。
ログのフォーマット
ログの出力形式をカスタマイズできます。タイムスタンプ、ログレベル、スレッド名、クラス名などの情報を含めることができます。
ログのローテーションと保持
ファイルサイズや日付に基づいて古いログをアーカイブし、新しいログファイルを開始する設定を行うことができます。