4
votes

I’m using JBoss Wildfly 9.0.0.CR2. I have a Spring 3.2.11.RELEASe web application and I’m curious about how to turn off Hibernate logging in my $JBOSS_HOME/standalone/log/server.log file, in particular all the query data, like

[DEBUG,SQL] select organizati0_.USER_ID as USER_ID1_117_0_, organizati0_.ORGANIZATION_ID as ORGANIZA2_122_0_, organizati1_.id as id1_5_1_, organizati1_.ADDRESS_ID as ADDRESS10_5_1_, organizati1_.COUNTRY_ID as COUNTRY11_5_1_, organizati1_.CREATED_ON as CREATED_2_5_1_, organizati1_.ORGANIZATION_ID as ORGANIZA3_5_1_, organizati1_.IMPLEMENTATION_MANAGER_ID as IMPLEME12_5_1_, organizati1_.IMPORT_DATA_FROM_SIS as IMPORT_D4_5_1_, organizati1_.LTI_REFERER_DOMAIN as LTI_REFE5_5_1_, organizati1_.NAME as NAME6_5_1_, organizati1_.ORGANIZATION_TYPE_ID as ORGANIZ13_5_1_, organizati1_.PARENT_ORGANIZATI

In my $JBOSS_HOME/standalone/configuration/standalone.xml file I have

    <subsystem xmlns="urn:jboss:domain:logging:3.0">
        <console-handler name="CONSOLE">
            <level name="INFO"/>
            <formatter>
                <named-formatter name="COLOR-PATTERN"/>
            </formatter>
        </console-handler>
        <periodic-rotating-file-handler name="FILE" autoflush="true">
            <formatter>
                <named-formatter name="PATTERN"/>
            </formatter>
            <file relative-to="jboss.server.log.dir" path="server.log"/>
            <suffix value=".yyyy-MM-dd"/>
            <append value="true"/>
        </periodic-rotating-file-handler>
        <logger category="com.arjuna">
            <level name="WARN"/>
        </logger>
        <logger category="org.apache.tomcat.util.modeler">
            <level name="WARN"/>
        </logger>
        <logger category="org.jboss.as.config">
            <level name="DEBUG"/>
        </logger>
        <logger category="sun.rmi">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb">
            <level name="WARN"/>
        </logger>
        <logger category="jacorb.config">
            <level name="ERROR"/>
        </logger>
        <logger category="org.jasypt">
            <level name="DEBUG"/>
        </logger>
        <logger category="org.springframework">
            <level name="ERROR"/>
        </logger>
        <logger category="org.hibernate">
            <level name="ERROR"/>
        </logger>
        <root-logger>
            <level name="INFO"/>
            <handlers>
                <handler name="CONSOLE"/>
                <handler name="FILE"/>
            </handlers>
        </root-logger>
        <formatter name="PATTERN">
            <pattern-formatter pattern="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
        <formatter name="COLOR-PATTERN">
            <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n"/>
        </formatter>
    </subsystem>

Note my

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

has no effect. I have no log4j.properties or log4j.xml in my web application. How do I turn off the Hibernate debugging?

Edit:

Below is how my entity manager factory is being configured in my Spring context ...

<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="packagesToScan" value="org.mainco.subco" />
    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/>
    </property>
    <property name="dataSource" ref="dataSource"/>
    <property name="jpaPropertyMap" ref="jpaPropertyMap" />
</bean>

<util:map id="jpaPropertyMap">
    <entry key="hibernate.show_sql" value="false" />
    <entry key="hibernate.hbm2ddl.auto" value="validate"/>
        <entry key="hibernate.dialect" value="org.hibernate.dialect.MySQL5InnoDBDialect"/>
        <entry key="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" />
        <entry key="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/>
        <entry key="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/>
        <entry key="hibernate.cache.use_second_level_cache" value="true" />
        <entry key="hibernate.cache.use_query_cache" value="false" />
        <entry key="hibernate.generate_statistics" value="false" />
</util:map>

<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<jee:jndi-lookup jndi-name="java:jboss/datasources/MySqlDS" id="dataSource" expected-type="javax.sql.DataSource"/>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory" />
</bean> 

:

in my WEB-INF/lib directory I have a commons-logging-1.1.1.jar and I also link to JBoss' pre-packaged slf4j module (below is the snippet from the WEB-INF/jboss-deployment-structure.xml file) ...

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
            <dependencies>
                    <module name="org.codehaus.jackson.jackson-core-asl" />
                    <module name="org.codehaus.jackson.jackson-mapper-asl" />
                    <module name="org.slf4j" />
                    ...

Edit 2:

Here are some other lines that precede and follow the debug SQL I'd like to eliminate from teh server log (I'd like to eliminate these lines too):

[DEBUG,EntityPrinter] org.mainco.subco.user.domain.User{lastName=test, creator=org.mainco.subco.user.domain.User#ADMIN1, incorrectLogins=null, address=org.mainco.subco.organization.domain.Address#77F7FAC9174A4BCA9A9C5E98F50DD134, userDemographicInfo=null, roles=[org.mainco.subco.user.domain.Role#Instructional Coach], resetState=false, avatar=null, userName=coach, createdOn=2015-07-24 15:39:59.0, enabled=true, url=localhost, firstName=test, temporaryPassword=null, password=V0VW0k+ge+free1My+bS/XSm7qb0ezuvL+irH+A9l5dnMoW0YnZNda2n2Zl138N2BN51MQ==, dob=null, grade=null, organizations=[org.mainco.subco.organization.domain.Organization#6942B22F268A4E66B50C71278E3DAA73], expiration=null, middleName=a, id=5F61E8CA3A554FE1991A05A3E960D442, salutation=null}
[DEBUG,EntityPrinter] org.mainco.subco.organization.domain.Organization{country=org.mainco.subco.organization.domain.Country#US, address=org.mainco.subco.organization.domain.Address#12946ACF562840458844D8083191CB73, eodbId=104112, parentOrganization=null, sampleOrg=null, createdOn=null, implementationManager=null, url=null, organizationType=org.mainco.subco.organization.domain.OrganizationType#19, userEntered=false, ltiRefererDomain=null, useExternalAuthentication=false, name=Alpine School District, id=6942B22F268A4E66B50C71278E3DAA73, state=org.mainco.subco.organization.domain.State#UT, importDataFromSis=false}
[DEBUG,EntityPrinter] org.mainco.subco.organization.domain.OrganizationType{parent=true, description=Regular District, id=19}
[DEBUG,SQL] select user0_.id as id1_117_, user0_.ADDRESS_ID as ADDRESS17_117_, user0_.AVATAR as AVATAR2_117_, user0_.CREATED_ON as CREATED_3_117_, user0_.CREATOR_ID as CREATOR18_117_, user0_.DOB as DOB4_117_, user0_.ENABLED as ENABLED5_117_, user0_.EXPIRATION as EXPIRATI6_117_, user0_.first_name as first_na7_117_, user0_.GRADE_ID as GRADE_I19_117_, user0_.INCORRECT_LOGINS as INCORREC8_117_, user0_.last_name as last_nam9_117_, user0_.middle_name as middle_10_117_, user0_.password as passwor11_117_, user0_.RESET_STATE as RESET_S12_117_, user0_.salutation as salutat13_117_, user0_.temporary_password as tempora14_117_, user0_.url as url15_117_, user0_.USER_DEMOGRAPHIC_INFO_ID as USER_DE20_117_, user0_.user_name as user_na16_117_ from sb_user user0_ where user0_.user_name=? and user0_.url=?
[DEBUG,CriteriaQueryImpl] Rendered criteria query -> select generatedAlias0 from Role as generatedAlias0 where generatedAlias0.name=:param0
5
Do you have an example of the messages it's printing?James R. Perkins
Yeah its the third line of my question -- the one with "[DEBUG,SQL] select organizati0_ ..."Dave
Sorry, no idea how I missed that :) Looks like it's not coming from WildFly FWIW. If there's a timestamp or logger name before that portion of the message that would be useful.James R. Perkins
Mysteriously, that is all that appears -- no logger name or timestamp before. The only logging file I have in my WEB-INF/lib directory is commons-logging-1.1.1.jar (no log4j). I link to JBoss' prepackaged org.slf4j (included deployment structure). NOt sure which is the culprit.Dave
Yes an slf4j API is added by default. Maybe try removing the commons-logging jar. Currently WildFly just uses jcl-over-slf4j for commons-logging.James R. Perkins

5 Answers

1
votes

Try adding the following in your standalone.xml configuration (directly in the logger subsystem) :

        <use-deployment-logging-config value="false" />
0
votes

You should set the following property in persistence.xml

 <property name="hibernate.show_sql" value="false" />
0
votes

Just guessing: Spring by default uses org.apache.commons.logging which may be responsible for the unexpected log messages you're seeing.

Try excluding the commons-logging dependency from your WAR, replacing it by the jcl-over-slf4j module contained in WildFly.

I'm not sure if this module is exported by default - you may have to declare a module dependency explicitly.

0
votes

make sure the spy attribute is not set to true in the datasource definition inside standalone.xml

0
votes

My problem was the console I solved this way, created the file: WEB-INF/classes/log4j.xml

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
    <appender name="CA" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{dd.MM.yyyy HH:mm:ss} %5p (%F:%L) - %m%n" />
        </layout>
    </appender>

    <root>
        <level value="info" />
        <appender-ref ref="CA" />
    </root>
</log4j:configuration>