参考https://stackoverflow.com/questions/14476112/how-to-get-rest-assured-log-into-something-printable-in-a-text-file

结合Heriaskucins的回答,兼容中文乱码问题的printstream

package tpf.common;

import org.apache.log4j.Logger;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream; /**
* 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;
//}
public PrintStream getPrintStream() {
if (myPrintStream == null) {
OutputStream output = new OutputStream() {
ByteArrayOutputStream baos = new ByteArrayOutputStream(); @Override
public void write(int b) throws IOException {
baos.write(b);
} @Override
public void flush() {
myLog.debug(this.baos.toString());
baos = new ByteArrayOutputStream();
}
};
myPrintStream = new PrintStream(output, true); // true: autoflush must be set!
}
return myPrintStream;
} /**
* Constructor
*
* @param aLogger
*/
public ToLoggerPrintStream(Logger aLogger) {
super();
myLog = aLogger;
}
}

最新文章

  1. Linux内核分析——分析system_call中断处理过程
  2. SQL SERVER 查询性能优化——分析事务与锁(五)
  3. lightbox图片展示效果
  4. 4630 no pain no game 树状数组
  5. Linux下彻底卸载LibreOffice方法
  6. SGU 181.X-Sequence
  7. Android异步载入全解析之使用多线程
  8. 【百度地图API】批量地址解析与批量反地址解析(带商圈数据)
  9. Android -- 自定义ScrollView实现放大回弹效果
  10. JAVA课程设计+购物车 个人博客
  11. IDEA打包jar包
  12. phpStudy环境安装SSL证书教程
  13. 在Django中使用ForeignKey()报错问题的解决
  14. 机器学习入门11 - 逻辑回归 (Logistic Regression)
  15. 用单向链表实现两数倒序相加(java实现)
  16. PHP----------用curl方式请求接口在同一个项目里面的时候不能请求的情况
  17. 发布自己的npm包、开源项目
  18. Spring Cloud Consul使用——配置中心
  19. Aspects源码解析(转载)
  20. hihoCoder week2 Trie树

热门文章

  1. kubernetes-核心概念及创建应用(六)
  2. java基础——Map集合
  3. JVM内存模型与GC算法(简介)
  4. 什么是静态代码块?java中如何使用空参构造方法自动生成不同名字的对象,使用非静态的属性和静态属性有什么区别,原因是什么?如何理解static关键字
  5. windows系统下的两个批处理命令
  6. odoo前端
  7. 【转】VxWorks信号量分析
  8. Ajax请求出现406的原因
  9. day2-python 登录
  10. python文件打包为exe可执行文件的方法