Java接口自动化测试框架系列(三)LOG信息的处理

既然是搭建自动化测试框架,肯定是希望框架的整体功能是全面的。

如果在执行过程中出了问题,通过log进行查看是比较方便的,所以需要有一个log方法来记录日志。

记录日志比较常用的是log4j,我们以log4j来编写公共的log类来进行日志的保存。

Maven坐标

<dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.12</version>
    </dependency>

  

日志实现类

package com.Auto_Test.utils;

import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

public class Logs {
    
    private final Class<?> clazz;
    private Logger logger;
    
    public Logs(Class<?> clazz) {
        this.clazz = clazz;
        this.logger = logger.getLogger(this.clazz);
        Logs.initlog();
    }

    //定义记录log的方法
    private static void initlog(){
        //创建Propderties对象
        Properties prop = new Properties();
        /*Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG
        这里定义能显示到的最低级别,若定义到INFO级别,则看不到DEBUG级别的信息了~!级别后面是输出端*/
        prop.setProperty("log4j.rootLogger", "INFO,CONSOLE,E,F");
        prop.setProperty("log4j.appender.CONSOLE", "org.apache.log4j.ConsoleAppender");
        prop.setProperty("log4j.appender.CONSOLE.layout", "org.apache.log4j.PatternLayout");
        prop.setProperty("log4j.appender.CONSOLE.layout.ConversionPattern", "[%d{HH:mm:ss,SSS}] %-5p %c %m%n");
        //设置日志输出的路径
        String src = "TestRport";
        //设置日期格式
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
        //获取当前日期,并根据当前的日期建立文件夹,将生成的.log文件放入当前日期的文件夹。
        String date=dateFormat.format(new Date()).toString();
        File dir = new File(src+"/"+date);
        if (!dir.exists()){
            dir.mkdirs();
        }
        String filepath=dir.getAbsolutePath()+"/"+"saasautotest"+".log";
        //生成log格式的日志,并将生成的.log的日志文件放入当前日期的文件夹。
        prop.setProperty("log4j.appender.E","org.apache.log4j.FileAppender");
        prop.setProperty("log4j.appender.E.file",filepath);
        prop.setProperty("log4j.appender.E.layout","org.apache.log4j.PatternLayout");
        prop.setProperty("log4j.appender.E.layout.ConversionPattern", "[%d{HH:mm:ss,SSS}] %-5p %c %m%n");
        prop.setProperty("log4j.appender.F","org.apache.log4j.FileAppender");
        prop.setProperty("log4j.appender.file.encoding","UTF-8");
        
        //生成Html格式的日志,并将生成的.html的日志文件放入当前日期的文件夹。
        //String filepathHtml=dir.getAbsolutePath()+"/"+"log_"+date+".html";
        //prop.setProperty("log4j.appender.F.file",filepathHtml);
        //prop.setProperty("log4j.appender.F.layout","org.apache.log4j.HTMLLayout");
        PropertyConfigurator.configure(prop);
    }

    public void info(String message) {
        logger.info(message);
    }

    public void debug(String message) {
        logger.debug(message);
    }

    public void error(String message) {
        logger.error(message);
    }

    public void trace(String message) {
        logger.trace(message);
    }

}

 

需要此项目的可以加我微信15224918643获取,也可以一起交流技术。

欢迎打扰

posted @ 2022-09-02 13:30  大风北吹  阅读(575)  评论(0编辑  收藏  举报