web-dev-qa-db-ja.com

Hibernateロギングを有効にする

休止状態ステートメントのログを作成しようとしています。 Hibernate 2.0が永続性プロバイダーであるJPAを使用してsqlステートメントを実行します(アプリケーションサーバーはJBoss AS 6.0です)。 EJB 3.0が提供するEntityManagerインターフェースを使用してCRUDメソッドを呼び出します。 hinernateロギングの有効化に関する多くの投稿を読みましたが、実際にはログが表示されません:-( log4j.propertiesファイルを作成し、Netbeansプロジェクトのルートフォルダーに配置します。私のlog4j.propertiesは次のとおりです。

### direct log messages to stdout ###
log4j.appender.stdout=org.Apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.Apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L – %m%n


log4j.rootLogger=debug, stdout

log4j.logger.org.hibernate=info

 ### log just the SQL
log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info

### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=info

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
log4j.logger.org.hibernate.cache=info

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

ログ情報が表示されないのはなぜですか? sql where句またはinsertステートメントで値を確認したい(実際にはいくつかの '?'のみが表示されます)事前に感謝します。

明確にするために、プロジェクトのフォルダー構造の下に配置します。

MyProject
¦   build.xml
¦   log4j.properties
¦
+---build
¦   ¦   capitolo2-ejb.jar
¦   ¦   capitolo2-war.war
¦   ¦   JBoss4.dpf
¦   ¦
¦   +---lib
¦   ¦       log4j-1.2.15.jar
¦   ¦       slf4j-api.jar
¦   ¦       slf4j-jboss-logmanager.jar
¦   ¦
¦   +---META-INF
¦           chapter2-hornetq-jms.xml
¦           jboss-app.xml
¦           log4j.properties
¦           MANIFEST.MF
¦
+---capitolo2-ejb
¦   ¦   build.xml
¦   ¦   
¦   ¦
¦   +---build
¦   ¦   +---classes
¦   ¦   ¦   ¦   .netbeans_automatic_build
¦   ¦   ¦   ¦   .netbeans_update_resources
¦   ¦   ¦   ¦
¦   ¦   ¦   +---ejb
¦   ¦   ¦   ¦   +---com
¦   ¦   ¦   ¦       +---ejb3inaction
¦   ¦   ¦   ¦           +---actionbazaar
¦   ¦   ¦   ¦               +---buslogic
¦   ¦   ¦   ¦               ¦       BillingException.class
¦   ¦   ¦   ¦               ¦       OrderBillingMDB.class
¦   ¦   ¦   ¦               ¦       PlaceBid.class
¦   ¦   ¦   ¦               ¦       PlaceBidBean.class
¦   ¦   ¦   ¦               ¦       PlaceOrder.class
¦   ¦   ¦   ¦               ¦       PlaceOrderBean.class
¦   ¦   ¦   ¦               ¦
¦   ¦   ¦   ¦               +---persistence
¦   ¦   ¦   ¦                       Bid.class
¦   ¦   ¦   ¦                       BillingInfo.class
¦   ¦   ¦   ¦                       Order.class
¦   ¦   ¦   ¦                       OrderStatus.class
¦   ¦   ¦   ¦                       ShippingInfo.class
¦   ¦   ¦   ¦
¦   ¦   ¦   +---META-INF
¦   ¦   ¦           beans.xml
¦   ¦   ¦           jboss.xml
¦   ¦   ¦           MANIFEST.MF
¦   ¦   ¦           persistence.xml
¦   ¦   ¦
¦   ¦   +---empty
¦   ¦   +---generated-sources
¦   ¦       +---ap-source-output
¦   +---dist
¦   ¦       capitolo2-ejb.jar
¦   ¦
¦   +---lib
¦   ¦       log4j-1.2.15.jar
¦   ¦
¦   +---nbproject
¦   ¦   ¦   ant-deploy.xml
¦   ¦   ¦   build-impl.xml
¦   ¦   ¦   genfiles.properties
¦   ¦   ¦   project.properties
¦   ¦   ¦   project.xml
¦   ¦   ¦
¦   ¦   +---private
¦   ¦           private.properties
¦   ¦           private.xml
¦   ¦
¦   +---setup
¦   ¦       jboss-ds.xml
¦   ¦
¦   +---src
¦       +---conf
¦       ¦       beans.xml
¦       ¦       jboss.xml
¦       ¦       MANIFEST.MF
¦       ¦       persistence.xml
¦       ¦
¦       +---Java
¦           +---ejb
¦               +---com
¦                   +---ejb3inaction
¦                       +---actionbazaar
¦                           +---buslogic
¦                           ¦       BillingException.Java
¦                           ¦       OrderBillingMDB.Java
¦                           ¦       PlaceBid.Java
¦                           ¦       PlaceBidBean.Java
¦                           ¦       PlaceOrder.Java
¦                           ¦       PlaceOrderBean.Java
¦                           ¦
¦                           +---persistence
¦                                   Bid.Java
¦                                   BillingInfo.Java
¦                                   Order.Java
¦                                   OrderStatus.Java
¦                                   ShippingInfo.Java
¦
+---capitolo2-war
¦   ¦   build.xml
¦   ¦
¦   +---build
¦   ¦   +---empty
¦   ¦   +---generated-sources
¦   ¦   ¦   +---ap-source-output
¦   ¦   +---lib
¦   ¦   ¦       log4j-1.2.15.jar
¦   ¦   ¦       slf4j-api.jar
¦   ¦   ¦       slf4j-jboss-logmanager.jar
¦   ¦   ¦
¦   ¦   +---web
¦   ¦       ¦   index.jsp
¦   ¦       ¦
¦   ¦       +---META-INF
¦   ¦       ¦       MANIFEST.MF
¦   ¦       ¦
¦   ¦       +---WEB-INF
¦   ¦           ¦   beans.xml
¦   ¦           ¦   jboss-web.xml
¦   ¦           ¦
¦   ¦           +---classes
¦   ¦               ¦   .netbeans_automatic_build
¦   ¦               ¦   .netbeans_update_resources
¦   ¦               ¦
¦   ¦               +---it
¦   ¦                   +---myservlets
¦   ¦                           PlaceBidServlet.class
¦   ¦                           PlaceOrderServlet.class
¦   ¦
¦   +---dist
¦   ¦       capitolo2-war.war
¦   ¦
¦   +---nbproject
¦   ¦   ¦   ant-deploy.xml
¦   ¦   ¦   build-impl.xml
¦   ¦   ¦   genfiles.properties
¦   ¦   ¦   project.properties
¦   ¦   ¦   project.xml
¦   ¦   ¦
¦   ¦   +---private
¦   ¦           private.properties
¦   ¦           private.xml
¦   ¦
¦   +---setup
¦   ¦       jboss-ds.xml
¦   ¦
¦   +---src
¦   ¦   +---conf
¦   ¦   ¦       MANIFEST.MF
¦   ¦   ¦
¦   ¦   +---Java
¦   ¦       +---it
¦   ¦           +---myservlets
¦   ¦                   PlaceBidServlet.Java
¦   ¦                   PlaceOrderServlet.Java
¦   ¦
¦   +---web
¦       ¦   index.jsp
¦       ¦
¦       +---WEB-INF
¦               beans.xml
¦               jboss-web.xml
¦
+---dist
¦       capitolo2.ear
¦
+---nbproject
¦   ¦   ant-deploy.xml
¦   ¦   build-impl.xml
¦   ¦   genfiles.properties
¦   ¦   project.properties
¦   ¦   project.xml
¦   ¦
¦   +---private
¦           private.properties
¦
+---setup
¦       jboss-ds.xml
¦       jboss4-netbeans-destinations-service.xml
¦       log4j.properties
¦
+---src
    +---conf
            chapter2-hornetq-jms.xml
            jboss-app.xml
            log4j.properties
            MANIFEST.MF
22
Rosanero4Ever

Hibernateログは、Hibernate構成でも有効にする必要があります。

行を追加

hibernate.show_sql=true
hibernate.format_sql=true

どちらかに

server\default\deployers\ejb3.deployer\META-INF\jpa-deployers-jboss-beans.xml

またはアプリケーションのpersistence.xml in <persistence-unit><properties>タグ。

とにかく、休止状態のログには、実際の準備されたステートメントのパラメーターに関する情報は(有用な形式で)含まれません。

あらゆる種類のSQLロギングに log4jdbc を使用する代替方法があります。

上記の答えは、IDEではなくJBossでhibernateを使用するコードを実行することを前提としています。この場合、ローカルIDEクラスパスではなく、server\default\deploy\jboss-logging.xmlのJBossでロギングを設定する必要があります。

JBoss 6はデフォルトでlog4jを使用しないことに注意してください。そのため、log4j.propertiesをearに追加しても役に立ちません。 jboss-logging.xmlに追加してみてください:

   <logger category="org.hibernate">
     <level name="DEBUG"/>
   </logger>

次に、ルートロガーのしきい値を変更します。 SLF4J logger.debug()がJBoss 6に記録されない を参照してください。

IDE(展開なし)から直接hibernateクエリをデバッグする場合、クラスパスにlog4j.properties、log4j、slf4j-api、slf4j-log4j12 jarが必要です。 を参照してください。 http://www.mkyong.com/hibernate/how-to-configure-log4j-in-hibernate-project/

36
Vadzim

私は自分自身に答えます。 Vadzimで提案されているように、jboss-logging.xmlファイルを検討し、次の行を挿入する必要があります。

<logger category="org.hibernate">
     <level name="TRACE"/>
</logger>

DEBUGレベルの代わりに、TRACEを作成しました。コンソールだけを見るのではなく、server.logファイルを開きます(デバッグメッセージはコンソールに送信されませんが、このモードを構成できます!)。

7
Rosanero4Ever

Log4j.propertiesファイルは、capitolo2.earのルートレベルにある必要があります(META-INFにはありません)。

MyProject
¦   build.xml
¦   
+---build
¦   ¦   capitolo2-ejb.jar
¦   ¦   capitolo2-war.war
¦   ¦   JBoss4.dpf
¦   ¦   log4j.properties
1
Nulldevice

Tomcat-8.5 + restlet-2.3.4 + hibernate-4.2.0 + log4j-1.2.14 Java 8アプリをdockerのAlpineLinuxで実行しています。

これらの2行を/usr/local/Tomcat/webapps/ROOT/WEB-INF/classes/log4j.propertiesに追加すると、ログにHQLクエリが表示され始めました。

### log just the SQL
log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=debug

ただし、JDBCバインドパラメーターはログに記録されません。

0
user674669