JOOQ Log4j - 缺少控制台输出

时间:2013-12-29 23:00:38

标签: java log4j ivy slf4j jooq

我遇到了日志问题,因为它描述为here

我的代码:

Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url, userName, password);

Settings settings = new Settings();
settings.withRenderFormatted(true);
settings.setExecuteLogging(true);

DSLContext dslContext = DSL.using(conn, SQLDialect.MYSQL,  settings);


dslContext.select(USER.USERID, USER.IMIE, USER.NAZWISKO).from(USER).orderBy(USER.USERID).limit(1, 2).fetch();

我的控制台中没有任何内容

这是我的log4j.xml:

<?xml version="1.0" encoding="UTF-8"?>
<log4j:configuration>
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%m%n" />
        </layout>
    </appender>

    <root>
        <priority value="debug" />
        <appender-ref ref="stdout" />
    </root>
</log4j:configuration>

和我的IVY依赖项:

<dependency org="org.jooq" name="jooq" rev="3.2.2"/>
<dependency org="org.jooq" name="jooq-codegen" rev="3.2.2"/>
<dependency org="org.jooq" name="jooq-meta" rev="3.2.2"/>

<dependency org="mysql" name="mysql-connector-java" rev="5.1.26"/>
<dependency org="log4j" name="log4j" rev="1.2.16"/>
<dependency org="org.slf4j" name="slf4j-simple" rev="1.7.4"/>

2 个答案:

答案 0 :(得分:2)

据我所知,我可以阅读代码(cf org.jooq.tools.JooqLogger),Jooq通过尝试加载每个代码来猜测记录器,直到成功为止。考虑到你的ivy.xml,你有Log4jslf4j-simple。而Jooq首先尝试slf4j。因此未使用Log4j

因此,您需要从依赖项中删除slf4j-simple

如果确实需要slf4j logger,尝试slf4j-log4j12,请将slf4j日志重定向到log4j。

答案 1 :(得分:1)

尼古拉斯,你是老板:),你是对的

这是正确的依赖关系,在IVY:

<dependency org="org.jooq" name="jooq" rev="3.2.2"/>
<dependency org="org.jooq" name="jooq-codegen" rev="3.2.2"/>
<dependency org="org.jooq" name="jooq-meta" rev="3.2.2"/>

<dependency org="mysql" name="mysql-connector-java" rev="5.1.26"/>
<dependency org="log4j" name="log4j" rev="1.2.16"/>
<dependency org="org.slf4j" name="slf4j-log4j12" rev="1.7.5"/>