2016-06-09 128 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命令? –