2016-06-09 99 views
0

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

我不想将这些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

java的代码更改

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); 

记录器输出:

关闭休眠会话[SessionImpl(PersistenceContext [entityKeys = [],collectionKeys = []]; ActionQueue [插入= []更新= []缺失= [] collectionCreations = [] collectionRemovals = [] collectionUpdates = []])]交易之后 重新启用自动提交 释放发行日期JDBC连接 JDBC连接 HHH000163:逻辑连接释放发布了其物理连接 JDBC连接

+0

请发布完整的log4.properties文件。 – Saheed

回答

0

java.util.logginglog4j完全不同,因此您所做的代码更改对您试图阻止的日志语句没有任何影响。

相反,注释掉那些行应关闭日志对于那些部件:

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

仍然无法正常工作,因为我在log4j.properties文件中评论了这些行file.log4j.rootLogger = DEBUG,FILE log4j.appender.FILE = org.apache.log4j.RollingFileAppender log4j.appender.FILE.File = $ {log } /dctlog.log log4j.appender.FILE.MaxFileSize = 10MB log4j.appender.FILE.MaxBackupIndex = 10 log4j.appender.FILE.layout = org.apache.log4j.PatternLayout log4j.appender.FILE.layout。 ConversionPattern =%m%n log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j。PatternLayout – shakti

+0

将您的根记录器级别从DEBUG提升到INFO:'log4j.rootLogger = INFO,stdout,FILE';哦,你一定要把你的log4j.properties文件粘贴到你的问题中,而不是像你所做的那样评论。 – Saheed

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语句的日志记录。

+0

,我只使用hibernate来获取SeesionFactory对象并使用如下所示的SQLQuery对象运行查询。 @Autowired SessionFactory sessionFactory; SQLQuery query = sessionFactory.getCurrentSession()。createSQLQuery(“”); resultList = query.list();我没有任何persistence.xml,我的hibernate.cfg.xml文件是空的。我不知道在哪里更改以阻止记录器中的hibernate和sql日志。 – shakti

+0

您是否尝试执行这两个CLI命令? –