2009-06-10 9 views
0

これは間違った質問かもしれませんが、私は他の言語でprint *を使っているように、古いSystem.err.printlnメソッドを使ってデバッグしている非常に大きなJavaプログラムを持っています...デバッグメッセージを一般的に管理するより良い方法はありますか?

しかし、しばらくして、私はそれらの多くを持っていました。私はそれらを管理する方法がわかりません(そして時には、同じメッセージを他の情報と連結して、それをさらに難しくします...) /最終的にそれらを見つけることは時々些細なことではない

私はより厳格にする方法がわからない...あなたは魔法のようなものを持っていますか?あなたはいつもprintlnの場所を印刷しますか?

ja私はそれらを考慮したいと思いますが、一般的にベストプラクティスは素晴らしいでしょう...

答えて

7

おそらくloggingを試してみてください。

標準出力にメッセージを配管するのではなく、ロガーがあなたのためにロギングを担当するようにしてください。また、異なるロギング・レベルを設定できることにより、記録されるログ・メッセージの細分化が可能になります。

+0

特定のログフレームワークに関するDaniel Mouraの答えを参照してください。 log4jとコモンズはどちらも、Javaロギングの事実上の標準であり、素晴らしい動作をしています。 –

0

はい - 私は常にプリントの場所をプリントします。 CでもLINEマクロで可能でした。 log4jを試してみると、すべての場所も表示されます。

0

Eclipse Java開発ツール(JDT)は、Javaデバッグに非常に効率的です。

個人的に私はこのツールを発見して以来、printlnを使ってデバッグを停止しました。あなたがそれを知らないなら、私は試してみる価値があると思います。

マヌー

1

Eclipseを使用している場合は、 "SYSTRACE" テンプレート(型SYSTRACEし、Ctrl +スペース)を使用することができます。ファイル名や行番号などを含むようにテンプレートを編集します(行を移動すると行番号が間違っていますが、C/C++のようなきれいなマクロはありません)。

一方、ロギングのjavaのビルド、commons-logging、log4j ...のようなロギングフレームワークをLOGGING用に使用していて、デバッグにEclipseのようなDEBUGGERを使用する必要があります。

5

javaの場合は、log4jを試してください。 log4jでは、メッセージのレベル(TRACE、DEBUG、INFO、WARN、ERROR、およびFATAL)を設定できます。コンソールのログを表示したり、ファイルに保存するなど、ログメッセージの出力を選択(および変更)することができます。

さらに、メッセージフォーマット(show hour、クラス名を表示、...)。

log4jのようなログツールのインターフェイスとして動作するcommons loggingを試してください。

+0

はlog4j/commons loggingよりもlogback/slf4jを好む – KitsuneYMG

+0

なぜlogback/slf4jが良いのですか? – LB40

関連する問題