研究室-LoggingAPIカスタマイズ&公開-

Chordのデバッグをやると思いきや、昨晩にひきつづきLoggingAPIのカスタマイズ。なかなかいい物ができたので公開します。

http://www2.coins.tsukuba.ac.jp/~i041184/distribute/OneLineLogFormatter.java
http://www2.coins.tsukuba.ac.jp/~i041184/distribute/OneLineLogFormatter.jar
http://www2.coins.tsukuba.ac.jp/~i041184/distribute/consoleFileLogging.prop
http://www2.coins.tsukuba.ac.jp/~i041184/distribute/fileLogging.prop
http://www2.coins.tsukuba.ac.jp/~i041184/distribute/consoleLogging.prop

[使い方]
0:Logger.global.fine("ログだこのやろう");みたいにSystem.out.println感覚で使う。
1:OneLineLogFormatter.javaコンパイルしてできたものをクラスパスに通すか、作っているソースと同じ場所に置く。自分の場合はOneLineLogFormatter.jarをEclipseでクラスパスに登録しました。
2:プログラムの実行時に"-Djava.util.logging.config.file=consoleLogging.prop"というようにプロパティファイル指定のオプションをつける。指定するファイルを変えることによって、コンソールへ、ファイルへ、コンソールとファイルへ、と変えられます。指定自体しなければどこにも出力されません。

出力結果は以下。デフォルトのloggingAPIだと2行にわけて出力されるし、行番号などが表示されなかったのですが、ここでは一行で、行番号も出力されます。あとおまけとして、ロギングのメソッドを呼んだところのメソッドを呼んだメソッドもin以降に出力します(一つだけスタックトレースを出すような感じ)。
2005/08/11 14:21:51 FINE ChordDeamon$RoutingTable.makeFingerTable(ChordDeamon.java:489) in ChordDeamon$RequestProcessor.checkSomeCondition(ChordDeamon.java:874) "ログだこのやろう"

結構便利だと思うのでぜひお試しあれ。使い方がよく分からない方は昨日の日記で紹介したサイトなど見てみて下さい。
というか、皆さんロギングはどんな感じでやってます?あと、assertとか使ってます?