之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html

配合Jenkins可持续集成:http://www.cnblogs.com/tobecrazy/p/4529399.html

这次demo的代码已经放到github:https://github.com/tobecrazy/Demo

打log是一个测试框架必备的功能之一,trace测试执行的内容,使测试分析更容易和有规律可循。进而进一步处理测试log,实现自动分析测试结果。

现在java项目写日志一般使用Log4j 2

log4j 2是一个开源的记录log的框架,比log4j 效率更高

更多内容:http://logging.apache.org/log4j/2.x/manual/index.html

首先下载相应的jar包,放到工程:

在测试框架中使用Log4J 2

接下来创建Log类,使用

clazz.getCanonicalName() 获取类名字,为将来case执行获取case名和page名和action名
package com.log;


import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Log {
    private final Class<?> clazz;
    private Logger logger;

    /**
     * 
     * @param clazz
     */
    Log(Class<?> clazz) {
        this.clazz = clazz;
        this.logger = LogManager.getLogger(this.clazz);
    }

    /**
     * @author Young
     * @param message
     * 
     */
    public void info(String message) {
        logger.info(clazz.getCanonicalName() + ": " + message);
    }

    /**
     * @author Young
     * @param message
     */
    public void debug(String message) {
        logger.debug(clazz.getCanonicalName() + ": " + message);
    }

    /**
     * @author Young
     * @param message
     */
    public void error(String message) {
        logger.error(clazz.getCanonicalName() + ": " + message);
    }

    /**
     * @author Young
     * @param message
     */
    public void trace(String message) {
        logger.trace(clazz.getCanonicalName() + ": " + message);
    }

    /**
     * @author Young
     * @param message
     */
    public void warn(String message) {
        logger.warn(clazz.getCanonicalName() + ": " + message);
    }

    /**
     * @author Young
     * @param message
     */
    public void fatal(String message) {
        logger.fatal(clazz.getCanonicalName() + ": " + message);
    }
}

 

接下来就可以直接调用这个类:

package com.log;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Log log=new Log(test.class);
		log.info("this is my test");
		log.debug("this is a debug");
		log.error("this is an error ");
		log.fatal("this is a fatal");
		log.trace("this is a trace");
	}

}

  然后, run as application 吧

结果如下: holy shit,damn it 居然报错

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
23:52:47.679 [main] ERROR com.log.test - com.log.test: this is an error
23:52:47.680 [main] FATAL com.log.test - com.log.test: this is a fatal

原来是缺少config

于是乎准备一份log4j2.xml文件,放在该package下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
    <Console name="Console" target="SYSTEM_OUT">
        <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/>
    </Console>
    <File name="log" fileName="logs/test.log" append="false">
        <PatternLayout pattern="%d{YYYY-MM-dd HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
    </File>
</Appenders>    
<Loggers>
    <Logger name="com.dbyl.libarary.utils.Log" level="all">
        <AppenderRef ref="Console"/>
        <AppenderRef ref="log"/>
    </Logger>
    <Root level="trace">
        <AppenderRef ref="Console"/>
        <AppenderRef ref="log"/>
    </Root>
  </Loggers>
</Configuration>
View Code

相关文章:

  • 2022-03-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-11
  • 2021-11-10
  • 2021-07-10
  • 2022-12-23
猜你喜欢
  • 2021-06-25
  • 2021-05-24
  • 2022-01-30
  • 2022-12-23
  • 2021-06-12
  • 2021-05-12
  • 2021-09-03
相关资源
相似解决方案