带有 Logback 的 JOOQ

Posted

技术标签:

【中文标题】带有 Logback 的 JOOQ【英文标题】:JOOQ with Logback 【发布时间】:2016-07-02 07:28:34 【问题描述】:

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

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

我也在谷歌搜索这个问题,但我找不到任何东西。 SpringBoot 使用 logBack,所以我的路径中有 logBack 和 slf4J。 是否可以将 logBack 用于 JOOQ ?我在 JOOQ 网站上没有任何关于它的说明。

【问题讨论】:

log4j.xml 是配置文件……等待它……log4j。您是否添加了 log4j(或 slf4j-log4j 桥)以及 Maven 依赖项? 这是我的 mvn 依赖项:` log4jlog4j1.2.16org.slf4jslf4j-apiorg.slf4jslf4j-log4j121.7.5` 【参考方案1】:

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

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

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

因此,为了通过 logback 和 Spring Boot 启用 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 Boot 手册中找到: https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html

【讨论】:

以上是关于带有 Logback 的 JOOQ的主要内容,如果未能解决你的问题,请参考以下文章

当配置 org.hibernate.SQL 记录器时,Logback 显示带有根级别 INFO 的 DEBUG 输出

带有弹簧属性占位符的 Spring Boot 和 Logback logging.config 文件

二十SpringBoot2核心技术——整合logback

二十SpringBoot2核心技术——整合logback

Logback - C3P0 和 HSQLDB

如何使用SBT和Scala正确管理开发和生产中的logback配置?