我现在正在学习 Spring,目前正在尝试使用 logback 配置 slf4j 以在测试环境中记录 MySQL 语句。据我了解,我配置了所有内容以获取 MySQL 日志,但我什么也没看到。日志记录适用于其他记录器,连接器/J 驱动程序除外。我应该在我的代码中修复什么?我的配置如下:
pom.xml 包含以下依赖项:
<!-- Logging with SLF4J & LogBack -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<scope>runtime</scope>
</dependency>
logback-test.xml
<configuration>
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator">
<resetJUL>true</resetJUL>
</contextListener>
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>%d{HH:mm:ss.SSS} %-5level %class{50}.%M:%L - %msg%n</pattern>
</encoder>
</appender>
<logger name="com.mysql" level="debug"/>
<logger name="org.springframework.jdbc" level="info"/>
<logger name="ru.javawebinar.topjava" level="debug"/>
<root level="INFO">
<appender-ref ref="console"/>
</root>
我正在使用 Spring 的 JDBC 模板来访问这样的数据库:
public List<Meal> getAll(int userId) {
return jdbcTemplate.query(
"SELECT * FROM meals WHERE user_id=? ORDER BY date_time DESC", ROW_MAPPER, userId);
}
我的连接字符串网址是
jdbc:mysql://localhost:3306/topjava?logger=Slf4JLogger
抱歉这个愚蠢的问题,但我真的卡在这里。