- PR -

Hibernateでの実行SQLの出力について(show_sql指定以外)

1
投稿者投稿内容
たか
会議室デビュー日: 2006/04/14
投稿数: 9
投稿日時: 2006-04-18 11:38
たかと申します。
いつもこちらにはお世話になっております。

現在、Hibernate3.1を使用してWebアプリケーションを構築しています。

トランザクション毎のインフォメーションとして、[ 実行SQL文 ]を
ログファイルへ出力したいと考えております。

Hibernateのドキュメントなどには、hibernate.cfg.xmlのshow_sqlプロパティへ
trueを設定すると出力できるとか書いてありますが、出力先が標準出力と
なっています。
※org.hibernate.AbstractBatchar#log()で出力を行っているようですが、
 System.out.printlnで記述されているため、出力先の指定ができません。

HibernateのAPIを調べては見たのですが、SQL文取得に概要する機能は
見当たらず、悩んでおります。

実行SQL文の取得方法、または代替案などご存知の方が
いらっしゃいましたらばご教授頂ければと思います。

宜しくお願いします。
Kazuki
ぬし
会議室デビュー日: 2004/10/13
投稿数: 298
投稿日時: 2006-04-18 12:58
log4jのプロパティファイルに
コード:
log4j.logger.org.hibernate.hql.ast.QueryTranslatorImpl=DEBUG


ってやると一応出ます。
(余計なものもでますが…)
# 当方Hibernate3.0で試しました
たか
会議室デビュー日: 2006/04/14
投稿数: 9
投稿日時: 2006-04-18 13:19
Kazukiさん
早速のご返答ありがとうございます。参考になります。

当方の環境でもSQL文は出力することができました。
が、余計なものが少々気になります・・・。

org.hibernate.JDBCException#getSQL()
のような出力だと、なお良いなぁと思っています。
なっかむ
常連さん
会議室デビュー日: 2002/12/26
投稿数: 29
投稿日時: 2006-04-18 14:52
以下ではいかがでしょうか?
log4j.logger.org.hibernate.SQL=debug

必要により、
hibernate.format_sql に 'false' or 'true' を設定すれば、
いい感じに出力されるようです。
たか
会議室デビュー日: 2006/04/14
投稿数: 9
投稿日時: 2006-04-18 15:27
なっかむさん

ありがとうございます。
仰るとおり、いい感じに出力することができました!!
log4jの使い方をもう少し勉強します。

Kazukiさん、なっかむさん、とても助かりました。
ありがとうございました。





1

スキルアップ/キャリアアップ(JOB@IT)