无法阻止Hibernate将日志写入控制台(log4j.properties没问题)
我已经准备好了
false
我已经禁用了log4j.properties中的所有消息
但是Hibernate使用所有查询和语句写入控制台。
将hibernate.show_sql
设置为true
告诉hibernate将所有SQL语句写入控制台。 这是将日志类别org.hibernate.SQL
设置为debug的替代方法。
因此,即使将此属性设置为false
,也要确保没有定义以下类别(或配置为使用控制台appender):
log4j.logger.org.hibernate.SQL=DEBUG
此外,确保在对Configuration
对象进行实例化时,不要以编程方式将hibernate.show_sql
设置为true。 像这样的东西:
Configuration cfg = new Configuration().configure(). .setProperty("hibernate.show_sql", "true");
请注意, setProperty(String propertyName, String value)
将第一个参数作为配置属性的全名,即hibernate.show_sql
,而不仅仅是show_sql
。
在那里,我想你也可以用log4j.properties文件中的这2行来解决这个问题。
log4j.logger.org.hibernate = WARN log4j.logger.org.hibernate = ERROR
你在log4j.properties中添加这样的东西?
log4j.logger.org.hibernate = WARN
这看起来很奇怪,但是当使用Eclipse和JUnit Test任务时,所有输出仍然转到Console(在Eclipse Console窗口中)。
但是当我使用ant命令进行unit testing时,没有任何东西可以进入控制台
如前所述,您首先需要将hibernate.show_sql
设置为false
。 这将阻止hibernate输出到控制台或Tomcat stdout日志。
但是为了将您的sql输出定向到另一个日志,请在log4j.xml文件中使用此代码:
要将正常的hibernate日志级别(WARN / ERROR)保持到控制台,请在log4j.xml文件中使用此代码:
它简单的Just Add依赖于你的pom.xml文件
log4j log4j 1.2.17
它将禁用日志记录并在src / main / resources / log4j.properties文件中添加put
log4j.rootLogger=OFF
然后你可以随时使用它,如果你想显示登录控制台然后在它上面或否则
- hibernate.hbm2ddl.import_files:文件的路径
- 您是否需要数据库事务来读取数据?
- Discriminator,WrongClassException JPA和Hibernate后端
- HibernateException:当’hibernate.dialect’未设置时,对DialectResolutionInfo的访问不能为null
- 实现AbstractMultiTenantConnectionProvider
- Java类 – 如何将Generic Object传递给函数
- 在没有Hibernate Annotations的情况下纠正PostgreSQL文本类型的JPA注释
- MySQL 5.5.9和TYPE上的Hibernate表创建错误
- 当UserType表示单行中的对象集时。 如何使用类似标准查询Hibernate自定义UserType?