spring
  • hibernate
  • logging
  • log4j
  • hql
  • 2016-11-08 79 views 0 likes 
    0

    我想在我的日志中显示由ihbernate执行的sql查询。Hibernate中的log4j配置

    这是我目前的log4j的配置:

    <?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,SSS} [%t] %-5p %c %x - %m%n" /> 
        </layout> 
    </appender> 
    
    <root> 
        <level value="info" /> 
        <appender-ref ref="CA" /> 
    </root> 
    
    <logger name="org.hibernate.SQL" additivity="false"> 
        <level value="debug" /> 
        <appender-ref ref="CA" /> 
    </logger> 
    
    <logger name="org.hibernate.hql" additivity="false"> 
        <level value="debug" /> 
        <appender-ref ref="CA" /> 
    </logger> 
    
    <logger name="org.hibernate.stat" additivity="false"> 
        <level value="trace" /> 
        <appender-ref ref="CA" /> 
    </logger> 
    
    </log4j:configuration> 
    

    但我仍然得到空与org.hibernate.stat.internal.ConcurrentStatisticsImpl

    08-11-2016 09:54:39,318 [http-bio-8080-exec-8] DEBUG org.hibernate.stat.internal.ConcurrentStatisticsImpl - HHH000117: HQL: null, time: 1ms, rows: 4 
    

    我如何才能登录完整的SQL,而不是HQL: null

    +0

    有启用的把hibernate.cfg.xml – kuhajeyan

    +0

    是。我有很多sql日志,但是我只能用DEBUG获得空值org.hibernate.stat.internal.ConcurrentStatisticsImpl –

    回答

    0

    要记录执行的查询添加以下到我的logj4配置:

    <!-- log Hibernate SQL Statements without parameters --> 
    <logger name="org.hibernate.SQL" additivity="false"> 
        <level value="DEBUG" /> 
        <appender-ref ref="console" /> 
    </logger> 
    <!-- add logging of parameters of the sql statements --> 
    <logger name="org.hibernate.type.descriptor.sql" additivity="false"> 
        <level value="TRACE" /> 
        <appender-ref ref="console" /> 
    </logger> 
    
    +0

    删除'org.hibernate.stat'会关闭统计日志。但是我想从这些统计数据中显示SQL,而不是删除它们! –

    +0

    我需要统计信息来显示查询的执行时间 –

    +0

    然后你当然需要这个记录器。我已经更新了我的答案。 – jaysee

    相关问题