• 对lombbok @slf4j 进行测试用例


    此文转载于:https://www.jvt.me/posts/2019/09/22/testing-slf4j-logs/

    工具类

    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());
        }
    
    }
  • 相关阅读:
    mysql的cmd窗口查看数据库信息
    常见抓包工具
    图形数据库
    支付宝支撑双十一4200万次/秒的数据库请求峰值的技术实现
    处理tomcat内存溢出问题
    maven将jar包打如本地仓库命令
    fastJson去掉指定字段
    mybatis insert 返回主键
    maven引入源码
    mysql实现主从复制
  • 原文地址:https://www.cnblogs.com/guoAIrong/p/13871569.html
Copyright © 2020-2023  润新知