SpringMVC使用log4j輸出csv檔案
阿新 • • 發佈:2019-01-08
1.設定log4j.properties
一定要設定gbk,因為中文系統不支援utf-8log4j.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
log4j.appender.logfile.Encoding=gbk
寫入csv的時候,使用英文逗號,分單元格,%n有換行功能,你可能會因為本身字串帶有的逗號而困擾,只需要用String.replace(",",",")英文逗號,換成中文逗號就可以了如果不需要表頭,就使用
log4j.appender.logfile.layout=org.apache.log4j.PatternLayou
需要表頭,需要重寫patternlayout方法,使用CSVLayout.class程式碼log4j.appender.logfile.layout=com.dialogueportal.test.CSVLayout
/** * */ 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),這個標籤就可以正常運行了,不懂的在下面留言