Writing sleep mode parameter values โ€‹โ€‹using logback and slf4j

I use hibernate, spring mvc and eclipse. In my eclipse console, hibernate sql is displayed as:

Hibernate: insert into some_table (fieldname1, fieldname2, fieldname3, fieldname4) values (?, ?, ?, ?) 

How can I get the console to print values โ€‹โ€‹that are inserted instead of question marks? I intend to use slf4j and logback to log into my application.

Here is my logback.xml:

 <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds"> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> <!-- To enable JMX Management --> <jmxConfigurator/> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%-5level %logger{0} - %msg%n</pattern> </encoder> </appender> <!--<logger name="org.hibernate" level="debug"/> --> <logger name="mypackagename.myappname" level="debug"/> <logger name="org.hibernate.SQL" additivity="false" level="DEBUG" /> <logger name="org.hibernate.type" additivity="false" level="TRACE" /> <root level="info"> <appender-ref ref="console"/> </root> </configuration> 
+7
java eclipse hibernate slf4j logback
source share
3 answers

The correct working answer was:

 <?xml version="1.0" encoding="UTF-8"?> <configuration scan="true" scanPeriod="30 seconds"> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> <!-- To enable JMX Management --> <jmxConfigurator/> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%-5level %logger{0} - %msg%n</pattern> </encoder> </appender> <logger name="mypackagename.myappname" level="TRACE"/> <logger name="org.hibernate.SQL" level="DEBUG" /> <logger name="org.hibernate.type" level="TRACE" /> <root level="info"> <appender-ref ref="console"/> </root> </configuration> 
+10
source share

Configure the org.hibernate.type.descriptor.sql.BasicBinder package to register the TRACE level:

  <logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false" level="TRACE" /> 
+3
source share

This is information about the two suggested answers. Both worked for me.

To print the requested request:

 <logger name="org.hibernate.SQL" additivity="false" > <level value="DEBUG" /> <appender-ref ref="SQLROLLINGFILE" /> <appender-ref ref="STDOUT" /> </logger> 

To print this "pretty", you can use jpaProperties.put("hibernate.format_sql", true|false); Additional information at [ https://docs.jboss.org/hibernate/stable/core.old/reference/en/html/configuration-optional.html]

Now about the meanings. Received:

 <logger name="org.hibernate.type" additivity="false" > <level value="TRACE" /> <appender-ref ref="SQLROLLINGFILE" /> <appender-ref ref="STDOUT" /> </logger> 

The conclusion will be:

 2017-02-12 14:16:57 DEBUG org.hibernate.SQL - select producttyp0_.idProductType as idProduc1_25_1_, producttyp0_.deleted as deleted2_25_1_, producttyp0_.description as descript3_25_1_, producttyp0_.name as name4_25_1_, products1_.idProductType as idProduc6_25_3_, products1_.idProduct as idProduc1_24_3_, products1_.idProduct as idProduc1_24_0_, products1_.deleted as deleted2_24_0_, products1_.maxQty as maxQty3_24_0_, products1_.name as name4_24_0_, products1_.price as price5_24_0_, products1_.idProductType as idProduc6_24_0_ from ProductType producttyp0_ left outer join Product products1_ on producttyp0_.idProductType=products1_.idProductType where producttyp0_.idProductType=? 2017-02-12 14:16:57 TRACE ohtype.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [35] 2017-02-12 14:16:57 TRACE ohtdescriptor.sql.BasicExtractor - extracted value ([idProduc1_24_0_] : [INTEGER]) - [null] 2017-02-12 14:16:57 TRACE ohtdescriptor.sql.BasicExtractor - extracted value ([deleted2_25_1_] : [INTEGER]) - [0] 2017-02-12 14:16:57 TRACE ohtdescriptor.sql.BasicExtractor - extracted value ([descript3_25_1_] : [VARCHAR]) - [desc] 2017-02-12 14:16:57 TRACE ohtdescriptor.sql.BasicExtractor - extracted value ([name4_25_1_] : [VARCHAR]) - [c0my6zko[test]] 2017-02-12 14:16:57 TRACE ohtdescriptor.sql.BasicExtractor - extracted value ([idProduc6_25_3_] : [INTEGER]) - [null] 

And another proposed solution

 <logger name="org.hibernate.type.descriptor.sql.BasicBinder" additivity="false" level="TRACE" > <level value="TRACE" /> <appender-ref ref="SQLROLLINGFILE" /> <appender-ref ref="STDOUT" /> </logger> 

The conclusion will be:

 2017-02-12 14:18:55 DEBUG org.hibernate.SQL - select producttyp0_.idProductType as idProduc1_25_1_, producttyp0_.deleted as deleted2_25_1_, producttyp0_.description as descript3_25_1_, producttyp0_.name as name4_25_1_, products1_.idProductType as idProduc6_25_3_, products1_.idProduct as idProduc1_24_3_, products1_.idProduct as idProduc1_24_0_, products1_.deleted as deleted2_24_0_, products1_.maxQty as maxQty3_24_0_, products1_.name as name4_24_0_, products1_.price as price5_24_0_, products1_.idProductType as idProduc6_24_0_ from ProductType producttyp0_ left outer join Product products1_ on producttyp0_.idProductType=products1_.idProductType where producttyp0_.idProductType=? 2017-02-12 14:18:55 TRACE ohtype.descriptor.sql.BasicBinder - binding parameter [1] as [INTEGER] - [36] 

Personally, I like the second because there is less information (avoiding ohtdescriptor.sql.BasicExtractor), but it depends on the project.

Hope this gives a little more information on what to enable.

0
source share

All Articles