ToStringBuilder を使うと JavaBeans の中身を簡単にログ出力できる

Apache Commons Lang の中に、ToStringBuilder というライブラリがある。これを使うと、いわゆる JavaBeans の中身を簡単にログ出力させられる。

// DB から値を取得して保持する DTO のようなモノとか
HogeBean hogeBean = HogeTable.selectNewestRecord();

// こんな風にすれば Bean の中身がログに出力できる
MyLogger.debug( ToStringBuilder.reflectionToString(hogeBean, ToStringStyle.DEFAULT_STYLE) );

出力形式なんかを細かく設定したりもできる。詳細は以下の記事が詳しい。

private なフィールドもリフレクションを使って表示してくれるので、便利ではあるが、やたらと多用するのはパフォーマンス劣化を招くかも。

Log4J なんかであれば #isDebugEnabled() を適切に使うとよろしいかと。

if(MyLogger.isDebugEnabled()) {
    MyLogger.debug( ToStringBuilder.reflectionToString(hogeBean, ToStringStyle.DEFAULT_STYLE) );
}

今更感あるかもしれないけど、Apache Commons みたいな小さな便利ライブラリって、知らない人は本当に知らないままオレオレライブラリ作ってたりするから…。