tutorial ejemplo java hibernate logging log4j jboss6.x

java - ejemplo - Habilitar el registro de Hibernate



hibernate java netbeans mysql (3)

El registro de Hibernación también debe estar habilitado en la configuración de hibernación.

Agregar líneas

hibernate.show_sql=true hibernate.format_sql=true

ya sea para

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

o a la persistence.xml la aplicación en la etiqueta <persistence-unit><properties> .

De todos modos, el registro de hibernación no incluirá (en forma útil) información sobre los parámetros de las declaraciones preparadas reales.

Existe una forma alternativa de usar log4jdbc para cualquier clase de registro sql.

La respuesta anterior asume que ejecuta el código que usa hibernate en JBoss, no en IDE. En este caso, debe configurar el registro también en JBoss en server / default / deploy / jboss-logging.xml, no en classpath IDE local.

Tenga en cuenta que JBoss 6 no usa log4j por defecto. Por lo tanto, agregar log4j.properties al oído no ayudará. Solo intenta agregar a jboss-logging.xml:

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

Luego cambie el umbral para el registrador de raíz. Ver SLF4J logger.debug () no se registra en JBoss 6 .

Si logra depurar consultas de hibernación directamente desde IDE (sin implementación), entonces debe tener log4j.properties, log4j, slf4j-api y slf4j-log4j12 jar en classpath. Ver http://www.mkyong.com/hibernate/how-to-configure-log4j-in-hibernate-project/ .

Estoy tratando de crear un registro de declaraciones de hibernación. Realizo mis declaraciones sql usando JPA donde Hibernate 2.0 es el proveedor de persistencia (mi servidor de aplicaciones es JBoss AS 6.0). Llamo a mis métodos CRUD utilizando la interfaz EntityManager proporcionada por EJB 3.0. Leí muchas publicaciones sobre cómo habilitar el registro de Hinernate, pero en realidad no puedo ver ningún registro :-( Creo un archivo log4j.properties y lo coloco en la carpeta raíz de mi proyecto de Netbeans. También puse la librería log4j en el classpath del proyecto. Mi log4j.properties es el siguiente:

### 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

¿Por qué no puedo ver la información de registro? Me gustaría ver los valores en las cláusulas sql where o en las instrucciones de inserción (en realidad, solo veo algunos ''?'') Gracias de antemano.

Para mayor claridad, coloco debajo de la estructura de carpetas de mi proyecto:

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


Me respondo a mí mismo. Como lo sugirió Vadzim, debo considerar el archivo jboss-logging.xml e insertar estas líneas:

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

En lugar del nivel DEPUG, escribí TRACE. Ahora, no mire solo la consola sino que abra el archivo server.log (los mensajes de depuración no se envían a la consola, pero puede configurar este modo).


Su archivo log4j.properties debe estar en el nivel raíz de su capitolo2.ear (no en META-INF), es decir, aquí:

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