Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 停止休眠控制台输出,不带log4j_Java_Hibernate_Log4j_Slf4j - Fatal编程技术网

Java 停止休眠控制台输出,不带log4j

Java 停止休眠控制台输出,不带log4j,java,hibernate,log4j,slf4j,Java,Hibernate,Log4j,Slf4j,正如标题中所说,我想停止Hibernate控制台输出,而不使用log4j。我尝试过使用log4j,但我什么都没有得到。 我想要的是控制台信息输出停止。 如果我使用的是log4j,那么是否可以在没有.properties或.xml文件的情况下使用它,只需在源代码中设置设置即可。 tnx您可以尝试以下方法: Logger log = Logger.getLogger("org.hibernate"); log.setLevel(Level.WARNING); 它应该会起作用。只要在

正如标题中所说,我想停止Hibernate控制台输出,而不使用log4j。我尝试过使用log4j,但我什么都没有得到。 我想要的是控制台信息输出停止。 如果我使用的是log4j,那么是否可以在没有.properties或.xml文件的情况下使用它,只需在源代码中设置设置即可。 tnx

您可以尝试以下方法:

Logger log = Logger.getLogger("org.hibernate");
        log.setLevel(Level.WARNING);

它应该会起作用。只要在打开任何会话之前调用它。

如果您使用的是slf4j api,解决方案看起来就像在类路径中添加slf4j-log4j12-1.5.2.jar。这不是为log4j添加的用于禁用日志的配置

这个链接应该很有用

您还可以从以下位置检查其他解决方案:


我可以证明,除非您的配置允许,否则Hibernate不会登录控制台。那么,您使用的是什么版本的Hibernate?如果不使用LOG4J作为日志后端,您将使用什么SLF4J绑定?你有它的配置文件吗

或者您是否在
hibernate.cfg.xml
中打开了SQL到标准输出的回显:

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

真的
你需要帮助读者一点,我们不都有水晶球:)请提供更多的材料


更新:似乎OP的类路径上有
slf4 simple
,该路径正好用于将
INFO
日志消息输出到控制台:

绑定实现,将所有事件输出到
System.err
。仅打印级别信息和更高级别的消息。这种绑定在小型应用程序的上下文中可能很有用


用另一个具有适当配置的绑定()替换
slf4 simple
,应该可以使Hibernate静音。

thx,这很有帮助,但是这个示例会生成记录器的多个绑定警告,但我正在接近解决方案。Tnx ull get a check>Dso,第一条链路不是解决方案,它只是创建未配置的接地。所以,如果你使用log4j绑定,不要使用slf4.simple。解决方案是获得所有正确的版本。我的解决办法是。Hibernate 3.5 slf4j-api-1.6.1 slf4j-log4j12-1.6.1 log4j-1.2.16,并使用log4j中的PropertyConfiguration将属性设置为FATAL@Martes很抱歉,这里提到的博客文章是完全错误的(我留下了一条评论来解释这个问题,但作者决定忽略他的错误并删除了我的评论)。作者在类路径上放置了几个绑定,隐藏了
slf4j simple
绑定,从而“意外地”解决了他的问题。但这是错误的,SLF4J确实会对此抱怨。所以我无意冒犯,但这个引用是非常错误的,这个公认的答案也是不正确的。解决方案不是添加随机的SLF4J绑定,而是替换
SLF4J简单的
绑定。这不是答案。我是带着同样的问题来到这里的,但我的回答毫无意义。这可能不是一个好答案,但它是一个答案。如果你认为这不是一个好答案,请投反对票。这就是投反对票的原因。我的评论已经解释了这一切。这是我的虚拟mestake,hibernate如果不正确也不会输出,问题在于我的绑定,多个绑定不是一个好主意,slf4 simple和log4j。但现在一切都解决了。我上面的评论显示了我的解决方案。以后我会记得提供更多的信息。很好,这部分对我有很大帮助。。tnx。我用它来改变源代码中的级别,而不使用out,这取决于properites文件。