【问题标题】:How to turn off Hibernate logging?如何关闭休眠日志记录?
【发布时间】:2016-08-04 19:18:32
【问题描述】:

我正在尝试将休眠日志记录设置为错误。 在 log4j.properties 中,这是我的条目:

#---------- Spring log -------------------------------
log4j.logger.org.springframework=error
log4j.logger.org.springframework.transaction=error

#---------- Hibernate log ----------------------------
log4j.logger.org.hibernate=error

但启动日志仍然显示这些消息:

31 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.3.2.GA
2328 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found
2328 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
2344 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
6734 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: <pkg.class> -> bbbbb
7656 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: <pkg.class> -> aaaaa
8422 [main] INFO org.hibernate.cfg.HbmBinder - Mapping class: <pkg.class> -> xxxx

我怎样才能避免记录这些?记录这些似乎会减慢初始化速度。

【问题讨论】:

  • 我非常怀疑日志记录是导致初始化缓慢的原因。
  • 每条消息之间似乎有很多时间延迟。无论如何,将它们放在日志中并没有帮助。所以想办法不记录这些。

标签: hibernate logging startup info


【解决方案1】:

很可能您的log4j.properties 无法控制。

Hibernate supports SLF4J 显然有很好的文档让你知道你必须做什么。

我建议您更进一步,通过按照 SLF4J documentation 设置应用程序日志记录来完全防弹。

基本上,如下图所示,就依赖关系而言,Log4j 是您首选的 SLF4J 实现,您必须:

  1. 从您的所有传递 Apache Commons logging (jcl) 和 Java Logging (jul) 依赖项中明确排除。
  2. 在其位置包含相应的 SLF4J 桥接库 jcl-over-slf4jjul-to-slf4j,它们会将您在类路径中拥有的任何依赖库通过管道传输到 SLF4J 并从那里传输到您的 Log4j(和 props 文件)。李>

【讨论】:

  • 感谢@dimitrisli 的回复。基于此,由于我想强制hibernate使用log4j机制,所以在类路径中加入了slf4j-log4j12.jar。但是 hibernate 似乎仍然没有使用 log4j.properties 设置。有什么我想念的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 2014-02-04
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
相关资源
最近更新 更多