首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jooq没有找到log4j2 Logger

Jooq没有找到log4j2 Logger
EN

Stack Overflow用户
提问于 2015-09-29 08:38:43
回答 2查看 695关注 0票数 1

我使用JOOQ库来生成和执行SQL查询。出于调试的原因,我想看看到底执行了哪些查询,而没有每次查看更改的数据库。我认为,如果日志级别被设置为调试,jooq框架应该显示大量有关查询的信息及其效果。我使用log4j2进行日志记录,并将其设置为使用以下配置进行调试:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="DEBUG" packages="ch.fhnw.ima.doggait">
    <appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
    </appenders>

    <loggers>
        <root level="DEBUG">
            <appender-ref ref="Console"/>
        </root>
    </loggers>
</configuration>

不幸的是,JOOQ似乎使用了另一个记录器,该记录器设置为info。这是一个示例输出:

2015-09-29 10:15:04,064调试关机2015-09-29 10:15:04,065调试LoggerCo2015-09-29 10:15:04,111使用d.10:15:04.116测试工作者调试ch.fh。2015年9月29日10:15:04 AM org.jooq.tools.JooqLogger信息信息:@.

您可以看到前几行是通过log4j2登录到调试模式中的,但是Jooq在级别信息中使用JooqLogger。我使用gradle加载两个库:

代码语言:javascript
复制
compile group: 'com.google.inject',             name: 'guice-parent',               version: '3.0'
compile group: 'com.google.inject.extensions',  name: 'guice-persist',              version: '3.0'
compile group: 'org.hibernate',                 name: 'hibernate-entitymanager',    version: '4.3.8.Final'
compile group: 'com.h2database',                name: 'h2',                         version: '1.4.185'
compile group: 'org.apache.commons',            name: 'commons-math3',              version: '3.2'
compile group: 'org.apache.logging.log4j',      name: 'log4j-core',                 version: '2.0.2'
compile group: 'org.apache.logging.log4j',      name: 'log4j-api',                  version: '2.0.2'
compile group: 'org.hamcrest',                  name: 'hamcrest-all',               version: '1.3'
compile group: 'org.apache.pdfbox',             name: 'pdfbox',                     version: '1.8.10'
compile group: 'postgresql',                    name:'postgresql',                  version:'9.0-801.jdbc4'
compile group: 'org.jooq',                      name:'jooq',                        version:'3.6.3'
compile group: 'org.jooq',                      name:'jooq-meta',                   version:'3.6.3'
compile group: 'org.jooq',                      name:'jooq-codegen',                version:'3.6.3'

testCompile 'junit:junit:4.11'

有人知道为什么jooq不使用log4j2作为默认的记录器,或者我如何将它设置为登录调试级别?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-29 10:38:53

在内部,jOOQ仍然使用log4j 1.2作为默认设置。您应该使用该版本(目前),或者使用slf4j。

有几个特性请求可以改善jOOQ中的这些依赖关系:

票数 1
EN

Stack Overflow用户

发布于 2016-08-17 08:36:43

我知道现在有点晚了,但我发现了同样的问题,我用apache本身的帮助解决了这个问题。您可以将此适配器包括在类路径中,它将log4j2与log4j 1.2连接起来

  • log4j-1.2-api-2.6.1.jar

但是,类路径中不能包含log4j 1.2JAR或配置文件。简而言之,使用log4j2做任何事情,只需包含上面的jar。

欲进一步阅读:罐子

这个问题帮了我一个忙:使用单个log4j2 xml文件配置log4j2和log4j2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32839478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档