SQLのログをわかりやすく

ログにSQLファイルのパスを含めるようにしました(次のバージョンDoma 0.9.10から)。

SQLファイルから読まれたSQLの実行ログはこんな感じ。改行されていますが、一度のログ出力です。

INFO  2009-11-17 23:50:44,537 [main] sqlFilePath=[META-INF/org/seasar/doma/it/dao/DepartmentDao/selectById.sql]
select * from DEPARTMENT where DEPARTMENT_ID = 99

自動生成の場合はnullと表示されます。

INFO  2009-11-17 23:59:40,944 [main] sqlFilePath=[null]
update DEPARTMENT set DEPARTMENT_NAME = 'hoge', DEPARTMENT_NO = 1, VERSION = 1 + 1 where DEPARTMENT_ID = 1 and VERSION = 1

このあたりは簡単にカスタマイズできるので、不要なら出さなくても大丈夫です。

例外が発生したときもSQLファイルのパスを含めるようにしました。こんなかんじ(適当に改行してます)。

org.seasar.doma.jdbc.JdbcException: [DOMA2016] PreparedStatementの取得に失敗しました。
SQLファイルパス=[META-INF/org/seasar/doma/it/dao/DepartmentDao/selectById.sql]
。実際のSQL=[select * from XXX]。原因は次のものです。
org.seasar.framework.exception.SSQLException: 
[ESSR0072]SQLで例外(SQL=[select * from XXX], 
Message=[Table not found in statement [select * from XXX]], ErrorCode=-22, SQLState=S0002)が発生しました
	at org.seasar.doma.internal.jdbc.util.JdbcUtil.prepareStatement(JdbcUtil.java:59)
	...