无法阻止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 ConfigurationException:找不到cfg.xml资源 IntelliJ
- 使用Hibernate 4的Integrator模式和Spring的dependency injection
- Java JPA GenerationType.Auto值始终为null
- 具有共享主键的两个表之间的OneToOne
- 创建一个可以处理所有类型的CRUD操作的类。 每次我需要做CRUD时都不需要创建SessionFactory或Session对象
- SQL错误:0,SQLState:08S01通信链接失败
- 适用于Hibernate pojo中@lob的hibernate映射。 我们正在使用hibernate映射。 你能告诉我@lob注释的等价物吗?
- Hibernate / persistence有哪些常见问题?
- 线程“main”中的exceptionorg.hibernate.HibernateException:访问stax流时出错