1.设置log4j.properties
log4j.rootLogger=ERROR, logfile
log4j.appender.logfile=org.apache.log4j.FileAppender
log4j.appender.logfile.File=D:\\DialoguePortal.csv
log4j.appender.logfile.Append=true
log4j.appender.logfile.Encoding=gbk
#log4j.appender.logfile.layout=org.apache.log4j.PatternLayou
log4j.appender.logfile.layout=com.dialogueportal.test.CSVLayout
log4j.appender.logfile.layout.ConversionPattern=%d{yyyy/MM/dd HH:mm},%m%n
一定要设置gbk,因为中文系统不支持utf-8
log4j.appender.logfile.Encoding=gbk
写入csv的时候,使用英文逗号,分单元格,%n有换行功能,你可能会因为本身字符串带有的逗号而困扰,只需要用String.replace(",",",")英文逗号,换成中文逗号就可以了
如果不需要表头,就使用
log4j.appender.logfile.layout=org.apache.log4j.PatternLayou
需要表头,需要重写patternlayout方法,使用
log4j.appender.logfile.layout=com.dialogueportal.test.CSVLayout
CSVLayout.class代码
/**
*
*/
package com.dialogueportal.test;
import org.apache.log4j.PatternLayout;
/**
* @author intern
*重写layout加入表头信息
*/
public class CSVLayout extends PatternLayout {
private static final String HEADER = "TestTime,TestCaseName,TestFileName,TestMethodName,TestParameters,ExpectedValues,ActualValues,TestResult";
@Override
public String getHeader() {
return HEADER + System.getProperty("line.separator");
}
}
换行:
System.getProperty("line.separator")
要让springMVC框架使用log4j你必须让log4j注入到框架中,采用重写SpringJUnit4ClassRunner.class的方法
代码:
/**
*
*/
package com.dialogueportal.test;
import java.io.FileNotFoundException;
import org.junit.runners.model.InitializationError;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.util.Log4jConfigurer;
/**
* @author intern
*
*/
public class JUnit4ClassRunner extends SpringJUnit4ClassRunner {
static {
try {
Log4jConfigurer.initLogging("classpath:com/log4j.properties");
} catch (FileNotFoundException ex) {
System.err.println("Cannot Initialize log4j");
}
}
public JUnit4ClassRunner(Class<?> clazz) throws InitializationError {
super(clazz);
}
}
你写测试用例的时候就只需要@RunWith(JUnit4ClassRunner.class),这个标签就可以正常运行了,不懂的在下面留言