[Seasar-user:10135] [S2-extension/S2Dao]SqlLogRegistryLocator に関して
Nishioka Naoto
[E-MAIL ADDRESS DELETED]
2007年 8月 28日 (火) 07:34:30 JST
にしおかです。
S2.4.17 + S2Dao1.0.46の環境で開発しております。
s2-extension.jarに含まれている、
org.seasar.extension.jdbc.impl.BasicHandlerクラスの
logSql(Object[], Class[])メソッドにおいて、
SqlLogRegistry sqlLogRegistry = SqlLogRegistryLocator.getInstance();
という感じでSqlLogRegistryLocatorのインスタンスを取得しています。
デフォルトでは、getInstance()の戻り値としては、
org.seasar.extension.jdbc.impl.SqlLogRegistryImplとなっているため、
仮にloggerの出力レベルをINFOにしても、
String getCompleteSql(Object[] args)が呼び出されて、
SQL文の構築が行われてしまいます。
本番稼働環境などにおいて、極力ログ関係の処理を削りたいという理由で
アプリケーション初期化の際にSqlLogRegistryLocator#setInstance(null)を
行った場合、何らかの影響は出る可能性がありますでしょうか?
logSqlメソッドではnullチェックを行っており、また、
s2-framework/s2-extension/s2daoのソースを追った感じ、
現在のところはSqlLogRegistryに対して、addするしかしていないようなので、
(少なくとも現時点のバージョンで環境を固定した場合は)
影響はなさそうに思えるのですが、SqlLogRegistryは、アプリケーション側から
直近においてどのようなSQLを発行したかを取得したりすることを目的として
実装&組み込みされているのでしょうか?
(s2フレームワーク側がSqlLogRegistryの内容を使用するのではなく、
開発するアプリケーション側で使用するためのものなのでしょうか?)
以上、よろしくお願いいたします。
------------------------------
Nishioka Naoto
Seasar-user メーリングリストの案内