带有 Logback 的 JOOQ

JOOQ with Logback

我将 springBoot 与 JOOQ 一起使用,并希望记录生成的 SQL。

我将 slf4J 添加到我的 Maven 依赖项中 log4j.xml JOOQ 文档 (http://www.jooq.org/doc/latest/manual/sql-execution/logging/)。但是当 jooq 执行一些查询时,我在我的控制台中看不到任何日志。

我也在google中搜索过这个问题,但没有找到任何内容。 SpringBoot 使用 logBack,所以我的路径中有 logBack 和 slf4J。 JOOQ 可以使用 logBack 吗?我在 JOOQ 网站上没有任何关于它的说明。

jOOQ 的内置 JooqLogger 尝试按以下顺序解析可选的记录器依赖项:

  • 如果在类路径中找到 slf4j,则使用它
  • 否则,如果在类路径中找到 log4j,则使用它
  • 否则,使用java.util.logging

因此,一旦 JooqLogger 在类路径上找到 slf4j(例如,作为 spring 引导的传递依赖项),它就会将其用作日志记录框架。这是合理的,因为 slf4j 可以配置为委托给任何其他日志记录框架,包括 log4j 和 java.util.logging.

因此,为了通过 logback 和 Spring 引导启用 jOOQ 的调试日志记录,将以下 logback.xml 文件放在类路径根目录中就足够了:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="org.jooq" level="DEBUG"/>
</configuration>

这现在也反映在 jOOQ-spring-boot-example on GitHub 中。

可以在 Spring 引导手册中找到更多想法: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html