如何配置 Hibernate 以使用标准日志记录?
我读到的文章说将日志框架放在类路径上,但我想只使用 java 附带的标准,这样编程就没有意义。
我正在尝试记录 SQL,因此在我的代码中(在使用 Hibernate 之前)我有
Logger hibernateLogger = Logger.getLogger("org.hibernate.SQL");
hibernateLogger.setLevel(Level.ALL);
并附加我用于其他调试的控制台处理程序
ConsoleHandler ch = new ConsoleHandler();
ch.setFormatter(new com.jthink.songkong.logging.LogFormatter());
ch.setLevel(Level.FINEST);
MainWindow.logger.addHandler(ch);
hibernateLogger.addHandler(ch);
但它没有任何效果,没有 Hibernate 日志记录写入控制台。
所以我认为问题是默认为 log4 或其他东西,但我不知道如何改变这种行为。我将 Hibernate 作为我的 maven 应用程序 (pom.xml) 的一部分,并且如果可能的话,我希望以编程方式选择标准日志记录。
最佳答案
记录仪受 garbage collection 的约束。您的代码中的一个错误如下:
Logger hibernateLogger = Logger.getLogger("org.hibernate.SQL");
删除该行并创建一个常量:
private static final Logger hibernateLogger = Logger.getLogger("org.hibernate.SQL");
只有在 code at run-time demands the logger 的情况下,在配置文件中定义它才有效。 .
关于java - 如何配置 Hibernate 以使用标准日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57627609/