• ベストアンサー

ログについて

プログラムを書いたのですが、ログをファイルで出力させたいと思いました。 (1)Loggerというクラスがあるのはわかったのですが、記述の仕方がよくわかりません。例えば、ソケット通信時にどのようなデータがどこに送られているかをログに取りたい場合はどこにどのように記述すればよいのでしょうか。 FileHandler handler = new FileHandler("/tmp/java.log"); Logger logger = Logger.getLogger("Sample"); handler.setFormatter(new SimpleFormatter()); logger.addHandler(handler); logger.setLevel(Level.ALL); try { ... DatagramSocket soc = new DatagramSocket(10000); DatagramPacket sendPacket = new DatagramPacket(sendBuffer, sendBuffer.length, remoteHost, destPort); soc.send(sendPacket); ... (2)アホな質問で恐縮ですが、ログというのは出力したい箇所に一つ一つ書いていかなければならないものなのでしょうか?そうするとプログラムが2倍近くの長さになりそうなのですが。。一旦書き上げたプログラムにちょろっと設定を足すだけで、メソッドを実行した箇所などを一括してログに取るようなことは出来ないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ww-_-ww
  • ベストアンサー率51% (46/89)
回答No.2

javaのLoggerを使うのも良いですが、javaでログ出力で一般的なlog4jを使用してみてはいかがですか? (1)Loggerというクラスがあるのはわかったのですが、記述の仕方がよくわかりません。例えば、ソケット通信時にどのようなデータがどこに送られているかをログに取りたい場合はどこにどのように記述すればよいのでしょうか。 →loggerのlogメソッドを呼び出せばログが出力されます。tryの中でlogメソッドを記述すればログが出力されませんか? (2)アホな質問で恐縮ですが、ログというのは出力したい箇所に一つ一つ書いていかなければならないものなのでしょうか?そうするとプログラムが2倍近くの長さになりそうなのですが。。一旦書き上げたプログラムにちょろっと設定を足すだけで、メソッドを実行した箇所などを一括してログに取るようなことは出来ないのでしょうか? →ログは出力したい場所にひとつひとつ記述しなければなりません。それがログです。 実際に出力するかどうかはログレベルで制御します。 ログでステップ数が増えてしまうことは仕方ありません。

redhat_001
質問者

お礼

ありがとうございます。ログファイルは作成出来たのですが、画面にも出力されてしまいます。画面出力だけやめることは出来るのでしょうか。

その他の回答 (1)

回答No.1

こんなのありました。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31083&forum=12&1 その他、「java」「logging」とかで検索すればたくさん解説が出てきますよ。

redhat_001
質問者

お礼

有り難うございました。

関連するQ&A