1

ここでベストプラクティスのアドバイスを探しています。構成ファイルにフラグが設定されている場合にのみ実行されるデバッグ コード (System.out.println と考えてください) を追加したいライブラリがあります。

これはかなり簡単で、プログラムをデバッグするのに役立つ出力が得られます。そうは言っても、本番コードの周りにたくさんの if(DEBUG) ステートメントが浮かんでいるというのは、手の込んだように思えます。私はコードの効率についてはあまり心配していませんが、実際に何かを行うステートメントとデバッグのためだけのステートメントの読みやすさについて心配しています。

ほとんどの IDE では、コードをステップ実行して、より手動のデバッグ オプションを効果的に提供できることを理解していますが、十分に反復的なコード ベースでは、コンソールに何かをダンプするだけでなく、その方法がより苦痛であることがわかりました。 . 別のオプションとして、DEBUG 設定のあるロギング フレームワークを使用することも考えられますが、追加のロギング手順は、単にコンソールに送信するのと同じくらい見苦しいと思います。

ここで見逃しているオプションはありますか? これをよりクリーンにする Java のデバッグ フレームワークはありますか? 参考までに、特定のメソッドが呼び出されるタイミングと、実行中のさまざまな時点でのさまざまなオブジェクトの文字列表現を知りたいと思います。

前もって感謝します。

4

3 に答える 3

1

私はあなたの問題をよく理解していませんが、log4j などのロギング フレームワークを使用することをお勧めします。これにより、ログ情報をファイル、データベース、またはコンソールに生成することを選択できます。system.out を使用するよりもはるかに強力です。

于 2012-05-16T14:27:36.123 に答える
0

IntelliJ IDEA では、メッセージまたは評価された式をコンソールに記録するブレークポイントを追加できます。ブレークポイントに達すると、単にログに記録して実行を継続します。

私はよくこれを条件付きブレークポイントと組み合わせて使用​​し、デバッグ ステートメントとして機能させ、デバッグ中にコードが何を行っているかをより明確に把握します。

素晴らしいことに、デバッガーによって実行時にログ ステートメントが追加されるため、ソース コードを変更する必要はありません。

Eclipse でも同じことができると思います。

于 2013-01-07T12:57:51.350 に答える
0

AspectJを使用して、本番コードからログアウトし続け、読みやすくすることができます。適切なポイントカットがあれば、デバッグ コードをほとんど書く必要もなくなるでしょう。デバッグに多くの時間を費やしている場合は、単体テストまたはより統制のとれた開発アプローチを検討してください。また、例外をキャッチして、スローする必要があるときにログに記録しないでください。

于 2012-05-16T14:35:25.453 に答える