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,per the SLF4J Manual,"outputs all events to System.err. Only messages of level INFO and higher are printed."
了解了这一点,我将org.slf4j.simpleLogger.logFile系统属性设置为System.out as specified in the SimpleLogger docs。
但是,这并没有改变任何行为,我仍然可以获得70+ Hibernate System.err日志。
有没有办法将Hibernate配置为不输出到System.err?问题是这些System.err消息被解释为警告,而它们只是信息性消息。
发布于 2013-09-05 02:52:10
现在Hibernate 4.x使用JBoss进行日志记录,这就是导致问题的原因。This thread帮了大忙,解决方案是设置系统属性org.jboss.logging.provider=slf4j。
这使得slf4j-simple能够拾取所有Hibernate System.err输出。使用原始线程中提到的系统属性,您可以将System.err输出更改为System.out。
https://stackoverflow.com/questions/18596818
复制相似问题