如何避免log4j logger中的Hibernate和JDBC日志记录

时间:2016-06-09 09:15:55

标签: java logging wildfly

我已经完成了所有可能的更改,以避免Hibernate和JDBC记录到记录器,但我仍然在JBOSS应用程序中的日志下面。

我不想将这些Hibernate和JDBC日志记录到记录器。

我在 log4j.properties 中的更改:

1.log4j.logger.org.hibernate =警告

2.log4j.logger.org.hibernate.SQL = OFF

log4j.logger.org.springframework.transaction = DEBUG log4j.logger.org.springframework.orm.hibernate4.HibernateTransactionManager = DEBUG

Jave代码更改

  1. org.jboss.logging.Logger logger = org.jboss.logging.Logger.getLogger("org.hibernate");
        java.util.logging.Logger.getLogger("org.hibernate").setLevel(java.util.logging.Level.OFF);

    2. java.util.logging.Logger.getLogger("org.hibernate").setLevel(Level.OFF);

记录器输出:

关闭Hibernate会话[SessionImpl(PersistenceContext [entityKeys = [],collectionKeys = []]; ActionQueue [insertions = [] updates = [] deletions = [] collectionCreations = [] collectionRemovals = [] collectionUpdates = []])交易后 重新启用自动提交 释放JDBC连接 发布了JDBC连接 HHH000163:逻辑连接释放其物理连接 发布了JDBC连接

2 个答案:

答案 0 :(得分:0)

java.util.logginglog4j完全不同,因此您所做的代码更改不会对您尝试抑制的日志语句产生任何影响。

相反,注释掉这些行应该会关闭这些组件的日志记录:

#log4j.logger.org.hibernate=WARNING
#log4j.logger.org.hibernate.SQL=OFF

答案 1 :(得分:0)

假设您正在使用由容器提供的Hibernate日志记录将由日志记录子系统而不是您的log4j.properties文件进行配置。

您可以使用以下CLI命令关闭SQL日志记录并将Hibernate更改为仅在警告级别登录。

/subsystem=logging/logger=org.hibernate:add(level=WARN)
/subsystem=logging/logger=org.hibernate.SQL=OFF

据我所知,默认情况下Hibernate不会记录SQL语句。检查您的persistence.xml以确保您没有打开那里的SQL语句记录。