我也想在我的DAO类的JUnit测试中使用slf4j.当您创建新测试或修改旧测试时,它会帮助您.我通常将旧的日志记录输出保留在调试级别,并在我仍然在积极处理该方法中的代码时将我的新日志记录语句设置为信息级别.我的一个JUnit类看起来像这样:
package com.example.mydao;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// other imports not shown...
public class TestMyDAO extends TestCase {
private static final Logger logger =
LoggerFactory.getLogger(TestMyDAO.class);
public void testA() {
logger.debug("Logging from testA() method");
}
public void testB() {
logger.debug("Logging from testB() method");
}
public void testThatIAmWorkingOn() {
logger.info("Logging from my new test method at INFO level");
}
}
我使用log4j作为实际的日志记录提供程序,所以我的log4j.xml配置文件如下所示:
这给了我的JUnit类的信息级输出,以及Hibernate运行时和Hibernate使用的其他库中的一些有用的东西.调整自己的口味.
最后,当我执行JUnit测试时,我需要确保以下所有库都位于我的类路径中:
> slf4j-api-1.6.0.jar
> slf4j-log4j12-1.6.0.jar
> log4j-1.2.16.jar
> log4j.xml(我的配置文件,如上所示)
>某些版本的JUnit运行时JAR
>所有JAR在生产中运行应用程序时通常都会出现
这是我使用log4j时所做的.如果使用不同的日志记录实现,则进行相应的调整.如果您使用的是不同版本的slf4j,只要“API”和实现JAR是相同的版本(我的都是1.6.0)就没关系.