java-JOOQ Log4j-缺少控制台输出
作者:互联网
我对日志记录有疑问,因为它描述为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"/>
解决方法:
据我所读的代码(参见org.jooq.tools.JooqLogger),Jooq试图加载每个记录器直到成功为止,猜测记录器要使用.考虑到ivy.xml,您同时拥有Log4j和slf4j. Jooq首先尝试slf4j.因此不使用Log4j.
因此,您需要从依赖项中删除slf4j-simple.
如果确实需要slf4j记录器,请尝试slf4j-log4j12,它将slf4j日志重定向到log4j.
标签:jooq,log4j,ivy,slf4j,java 来源: https://codeday.me/bug/20191122/2058756.html