Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

S2Daoバインド後のSQLのみを別のログファイルに出力する

ほとんど個人的な備忘録。
log4jレベルだとは予想してましたが、如何せん、log4j.propertiesの書き方を忘れてるよ。。。 orz
とりあえず、FAQ/S2DAO - SeasarWikiの情報を基に、以下の内容をlog4j.propertiesに追記することで対応。

log4j.category.org.seasar.extension.jdbc.impl=DEBUG, S
log4j.additivity.org.seasar.extension.jdbc.impl=true
log4j.appender.S=org.apache.log4j.DailyRollingFileAppender
log4j.appender.S.File=${catalina.home}/webapps/test/WEB-INF/logs/sql.log
log4j.appender.S.DatePattern='.'yyyy-MM-dd
log4j.appender.S.layout=org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern=%X{host}  %d{yyyy/MM/dd HH:mm:ss} %p %m%n
log4j.appender.S.Threshold=DEBUG

あとでSeasar2のソースを見てみたら、

  • org.seasar.extension.jdbc.impl.BasicBatchHandler
  • org.seasar.extension.jdbc.impl.BasicSelectHandler
  • org.seasar.extension.jdbc.impl.BasicUpdateHandler

でそれぞれログ出力しているのを確認できました。