您的位置:首页 > 其它

rest-assured 将log()中的信息打印到log日志中去的方法

2017-05-03 17:06 531 查看
rest-assured 将log()中的信息打印到log日志中去的方法:

============方法1==============

PrintStream fileOutPutStream = new PrintStream(new File("log/test.log"));

RestAssured.config

= RestAssured.config().logConfig(new LogConfig(fileOutPutStream, true));

============方法2==============

RestAssured.config = RestAssured.config().logConfig(new LogConfig(new ToLoggerPrintStream(logger).getPrintStream(), true));


import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
import org.slf4j.Logger;

/**
* A wrapper class which takes a logger as constructor argument and offers a PrintStream whose flush
* method writes the written content to the supplied logger (debug level).
* <p>
* Usage:<br>
* initializing in @BeforeClass of the unit test:
* <pre>
*          ToLoggerPrintStream loggerPrintStream = new ToLoggerPrintStream( myLog );
*          RestAssured.config = RestAssured.config().logConfig(
*                                 new LogConfig( loggerPrintStream.getPrintStream(), true ) );
* </pre>
* will redirect all log outputs of a ValidatableResponse to the supplied logger:
* <pre>
*             resp.then().log().all( true );
* </pre>
*
* @version 1.0 (28.10.2015)
* @author  Heri Bender
*/
public class ToLoggerPrintStream
{
/** Logger for this class */
private Logger myLog;
private PrintStream myPrintStream;

/**
* @return printStream
*/
public PrintStream getPrintStream()
{
if ( myPrintStream == null )
{
OutputStream output = new OutputStream()
{
private StringBuilder myStringBuilder = new StringBuilder();

@Override
public void write(int b) throws IOException
{
this.myStringBuilder.append((char) b );
}

/**
* @see java.io.OutputStream#flush()
*/
@Override
public void flush()
{
myLog.debug( this.myStringBuilder.toString() );
myStringBuilder = new StringBuilder();
}
};

myPrintStream = new PrintStream( output, true );  // true: autoflush must be set!
}

return myPrintStream;
}

/**
* Constructor
*
* @param aLogger
*/
public ToLoggerPrintStream( Logger aLogger )
{
super();
myLog = aLogger;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: