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
でそれぞれログ出力しているのを確認できました。
Tomcat5.5のcluster
相変わらず、どうでも良いところでハマってるのでメモ。
- server.xmlのReceiver要素のtcpListenPort属性で指定するポートは、iptablesから除外しておく
- Tomcat起動時に"No members active in cluster group"となってしまう(当然)
- アプリケーション側のweb.xmlに記述するdistributable要素には順番がある
- 以下、ちょっと長いけど、記述する要素によっては気にする必要がある
- icon?
- display-name?
- description?
- distributable?
- context-param*
- filter*
- filter-mapping*
- listener*
- servlet*
- servlet-mapping*
- session-config?
- mime-mapping*
- welcome-file-list?
- error-page*
- taglib*
- resource-env-ref*
- resource-ref*
- security-constraint*
- login-config?
- security-role*
- env-entry*
- ejb-ref*
- ejb-local-ref*
- 以下、ちょっと長いけど、記述する要素によっては気にする必要がある
ちゅーことは、web.xmlって、何にも書かなくても良いって事か。
PEAR::Text_CAPTCHA_Numeral
PHPでCAPTCHAといえばPEAR::Text_CAPTCHAですが、最近見かけるようになった「簡単な計算をさせるCAPTCHA」を実現するパッケージです。
$PEAR_DIR/doc/Text_CAPTCHA_Numeral/examplesディレクトリにあるliveNumeral.phpあたりを実行してもらうとすぐ分かると思いますが、
Generation of numeral maths captchas

のようなCAPTCHAです。このパッケージでは、
- 計算式の作成(足し算 or 引き算)
- 計算式の取得
- 回答の取得
といった簡単なメソッドしか用意されていません。というか、これ以上不要でしょう ;-)
PEAR::Text_CAPTCHAのようにGD拡張は不要ですし、PHP(5.0以上)さえあれば動作しますので、適用範囲は結構広いと思います。