工具类
package com.justin.shell.lombook.slf4j;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.read.ListAppender;
import org.slf4j.LoggerFactory;
/**
* @ClassName LoggerTestUtil
* @Description
* @Author YuGuo
* @Date: 2020-10-23 19:13:28
*/
public class LoggerTestUtil {
public static ListAppender<ILoggingEvent> getListAppenderForClass(Class clazz) {
Logger logger = (Logger) LoggerFactory.getLogger(clazz);
ListAppender<ILoggingEvent> loggingEventListAppender = new ListAppender<>();
loggingEventListAppender.start();
logger.addAppender(loggingEventListAppender);
return loggingEventListAppender;
}
}
服务类
package com.justin.shell.lombook.slf4j;
import lombok.extern.slf4j.Slf4j;
/**
* @ClassName Slf4jService
* @Description
* @Author YuGuo
* @Date: 2020-10-24 22:58:22
*/
@Slf4j
public class Slf4jService {
public void printLog(){
log.info("info");
log.warn("warn");
log.error("error");
}
}
测试类
package com.justin.shell.lombook.slf4j;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.read.ListAppender;
import org.junit.Assert;
import org.junit.Test;
/**
* @ClassName Slf4jServiceTest
* @Description
* @Author YuGuo
* @Date: 2020-10-24 22:59:38
*/
public class Slf4jServiceTest {
private ListAppender<ILoggingEvent> logEvents = LoggerTestUtil.getListAppenderForClass(Slf4jService.class);
@Test
public void testPrint(){
Slf4jService slf4jService = new Slf4jService();
slf4jService.printLog();
Assert.assertEquals(3, logEvents.list.size()); //可以看出event的大小和服务类输出日志的个数一样
Assert.assertEquals("info", logEvents.list.get(0).getFormattedMessage());
Assert.assertEquals("warn", logEvents.list.get(1).getFormattedMessage());
Assert.assertEquals("error", logEvents.list.get(2).getFormattedMessage());
}
}