我有一个使用hibernate和slf4j在eclipse中运行的spring mvc app。我想在控制台中关闭hibernate日志记录,因为它正在掩埋我希望能够看到的其他控制台消息。如何关闭休眠日志?
我已就此主题进行了大量的网络搜索,并查看了有关堆栈溢出的其他帖子,但其他帖子没有回答我的问题。例如,来自另一个帖子的以下代码将不会在eclipse中编译,因为它给出了方法不属于对象的消息,即使我为给定对象导入了每个可能的包集合:
List<Logger> loggers = Collections.<Logger>list(LogManager.getCurrentLoggers());
loggers.add(LogManager.getRootLogger());
for ( Logger logger : loggers ) {
logger.setLevel(Level.OFF);
}
此外,在show_sql
的工作区中执行关键字搜索没有产生任何结果,因此我似乎不能将hibernate.show_sql
设置为false。
也许其他解决方案适用于过时的库版本?我使用的是eclipse kepler,slf4 1.7.5和hibernate 4.2。
答案 0 :(得分:2)
要关闭休眠消息,您必须正确配置日志框架。
很可能你正在使用log4j。 log4j的配置位于log4j.xml或log4j.properties
中只需将类似的内容添加到配置文件
log4j.logger.org.hibernate=ERROR
答案 1 :(得分:2)
如果您只想关闭Spring Petclinic示例应用程序中的Hibernate SQL日志记录,请在src / main / resources / spring / data-access.properties中将jpa.showSql
设置为false。
希望这有帮助。
答案 2 :(得分:0)
这可能会有所帮助,设置&#34; show_sql&#34;在代码中动态地为false。
Configuration cfg = new Configuration().configure().
.setProperty("hibernate.show_sql", "false");
如果没有在stackoverflow上查看这篇文章: