DaoSQLを出力する方法

 S2Javelinの適用方法は、JavelinTraceInterceptorを各コンポーネントaspectとして設定するのですが、S2Daoが発行するSQLを出力するにはlog4jの設定で行います。

log4j.properties

#S2Javelin Logger
log4j.category.org.seasar.javelin.JavelinTraceInterceptor=DEBUG, Javelin
log4j.appender.Javelin=org.apache.log4j.FileAppender
#S2Javelin log file
log4j.appender.Javelin.File=c:\\temp\\s2javelin.jvn
log4j.appender.Javelin.layout=org.apache.log4j.PatternLayout
log4j.appender.Javelin.layout.ConversionPattern=%m%n
log4j.additivity.org.seasar=false

# SQL Logger
log4j.category.org.seasar.extension.jdbc.impl=DEBUG, DaoSql
log4j.category.org.seasar.dao=DEBUG, DaoSql
log4j.appender.DaoSql=org.apache.log4j.FileAppender
#SQL log file
log4j.appender.DaoSql.File=c:\\temp\\s2javelin.jvn
log4j.appender.DaoSql.layout=org.apache.log4j.PatternLayout
log4j.appender.DaoSql.layout.ConversionPattern=
Write ,%d{yyyy/MM/dd HH:mm:ss.SSS},,DaoSQL,0,%M,%C,0,public,%t%n
<<javelin.FieldValue_START>>%n%m%n<<javelin.FieldValue_END>>%n%n

 上記のようにS2Javelinに含まれているlog4j.propertiesの設定をそのままコピペすれば完了です。これで、S2Daoが発行するSQLArrowVisionで表示可能な形式でログ出力してくれます。

 課題としては、ArrowVisionで表示した時に、呼び出し元になるDaoやBaoから矢印がひけない点です。これはS2Daoに手を入れないと実現できないようです(S2Javelinコミッタ談)。

 ぜひ対応してもらいたいですが、現状でも時系列で必ず並ぶので、シーケンシャルに見ることができます。