【问题标题】:Hibernate logging休眠日志
【发布时间】:2011-11-06 23:44:17
【问题描述】:

我的应用程序使用带有 Ehcache 的 Hibernate。

我已经用这个 log4j.properties 配置了 log4j:

# Configure the console as our one appender
log4j.rootLogger = INFO, A1

log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n

log4j.logger.org.hibernate=info
### log HQL query parser activity
log4j.logger.org.hibernate.hql.ast.AST=info
### log just the SQL
log4j.logger.org.hibernate.SQL=info
### 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=info
### log cache activity ###
log4j.logger.org.hibernate.cache=info
### log transaction activity
log4j.logger.org.hibernate.transaction=info
### log JDBC resource acquisition
log4j.logger.org.hibernate.jdbc=info
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=info

但在控制台输出中,我有很多这样的日志行:

22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@1bdedf8
22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@5264dc
22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@15bd8eb
22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@fe4dd2
22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@1a751ff
22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@1f86f75
22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@15daaef
22:42:06.603 [Thread-15] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@9d5241
22:42:06.604 [Thread-15] DEBUG n.s.e.config.ConfigurationFactory - Configuring ehcache from InputStream
22:42:06.606 [Thread-15] DEBUG net.sf.ehcache.config.BeanHandler - Ignoring ehcache attribute xmlns:xsi

是否可以禁用此 DEBUG 消息?我找不到任何可行的解决方案。 提前致谢!

PS。 pom.xml 仅包含:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.6.1</version>
</dependency>

【问题讨论】:

    标签: java hibernate logging configuration


    【解决方案1】:

    解决了这个问题: 1. 从 spring 中排除 commons-logging:

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${org.springframework.version}</version>
        <exclusions>
            <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    

    2。设置日志记录:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>1.6.1</version>
    </dependency>
    <dependency>
        <artifactId>commons-logging</artifactId>
        <groupId>commons-logging</groupId>
        <version>1.1.1</version>
    </dependency>
    

    3。从反射中排除 logback:

    <dependency>
        <groupId>org.reflections</groupId>
        <artifactId>reflections</artifactId>
        <version>0.9.5-RC2_jboss-SP1</version>
        <exclusions>
            <exclusion>
                <artifactId>slf4j-api</artifactId>
                <groupId>org.slf4j</groupId>
            </exclusion>
            <exclusion>
                <artifactId>logback-classic</artifactId>
                <groupId>ch.qos.logback</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    

    如果我提供了一些细节,我很抱歉:)

    【讨论】:

      【解决方案2】:
      log4j.appender.A1.Threshold=INFO
      

      试试上面的方法,让我知道结果如何。

      【讨论】:

      • Hibernate 是否有可能使用自己的 log4j 配置?如果您的 log4j.properties 在类加载器层次结构中的位置比 Hibernate 的低得多,通常会发生这种情况。
      • 我的 log4j.properties 放在 src/main/resources 中,即 WEB-INF/classes 中的结果战争
      • hibernate jar 放在哪里? WEB-INF/lib 还是其他地方?
      • 其中是否还有一个 commons-logging jar?
      • 是的,它作为 spring 的依赖项出现,我认为这是问题所在,但如果我排除 commons-logging,我会在编译时出错
      猜你喜欢
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多