如标题所述,我想停止Hibernate控制台输出,而不使用log4j。我试过使用log4j,但我没有任何地方。 我想要的是控制台INFO输出停止。 如果我使用log4j,可以在没有.properties或.xml文件的情况下执行此操作,只需在源代码中设置设置即可。 TNX
答案 0 :(得分:4)
你可以试试这个:
Logger log = Logger.getLogger("org.hibernate");
log.setLevel(Level.WARNING);
它应该工作。只需在打开任何会话之前调用它。
答案 1 :(得分:3)
我可以证明Hibernate不会登录控制台,除非你的配置以某种方式允许它这样做。那么,你使用的是什么版本的Hibernate?如果你没有使用LOG4J作为记录后端,你使用什么SLF4J绑定?你有配置文件吗?
或许你在hibernate.cfg.xml
开启了对stdout的回应?:
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
你需要帮助读者一点,我们并不都有水晶球:)请提供更多材料。
更新:OP似乎在其类路径上有slf4-simple
binding,它正好用于向控制台输出INFO
日志消息:
Simple
实施的绑定,将所有事件输出到System.err
。仅打印INFO级别以上的消息。此绑定在小型应用程序的上下文中可能很有用。
用另一个具有相应配置的绑定(you should not have multiple bindings on the class path)替换 slf4-simple
应该会使Hibernate静音。
答案 2 :(得分:1)
如果您使用的是slf4j-api,解决方案就像在类路径中添加slf4j-log4j12-1.5.2.jar一样。这不是为log4j添加的用于禁用日志的配置。
此链接应该有用。
http://ayushsuman.blogspot.com/2010/07/turning-off-hibernate-logging-console.html
您还可以查看其他解决方案:
Can't stop Hibernate from writing log to console (log4j.properties is ok)