1

Hibernate 似乎正在将正常信息记录到System.err. 几个例子是:

System.err: Sep 03, 2013 10:41:55 AM org.hibernate.annotations.common.Version <clinit>
System.err: Sep 03, 2013 10:41:55 AM org.hibernate.Version logVersion
System.err: Sep 03, 2013 10:41:55 AM org.hibernate.cfg.Environment <clinit>
System.err: Sep 03, 2013 10:41:55 AM org.hibernate.cfg.Environment buildBytecodeProvider
System.err: Sep 03, 2013 10:42:02 AM org.hibernate.tool.hbm2ddl.TableMetadata <init>

总共大约有70个。我的日志记录设置如下:

log4j-over-slf4j.jar
slf4j-api.jar
slf4j-simple-1.7.5.jar

我知道 slf4j-simple,根据 SLF4J 手册"outputs all events to System.err. Only messages of level INFO and higher are printed."

知道了这一点,我将org.slf4j.simpleLogger.logFile系统属性设置System.outSimpleLogger 文档中指定的值。

然而,这并没有改变任何行为,我仍然收到 70 多个 Hibernate System.err 日志。

有什么方法可以将 Hibernate 配置为不输出到System.err?问题是这些System.err消息被解释为 WARN,而它们只是信息性消息。

4

1 回答 1

0

现在 Hibernate 4.x 使用 JBoss 进行日志记录,这是导致问题的原因。 该线程帮助最大,解决方案是设置系统属性org.jboss.logging.provider=slf4j

这使得slf4j-simple能够拾取所有的休眠System.err输出。使用原始线程中提到的系统属性,您可以将System.err输出更改为System.out.

于 2013-09-04T18:52:09.693 回答