RestAssured打印日志到文件中的方法
2024-08-30 05:05:57
结合Heri和askucins的回答,兼容中文乱码问题的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;
}
}
最新文章
- Linux内核分析——分析system_call中断处理过程
- SQL SERVER 查询性能优化——分析事务与锁(五)
- lightbox图片展示效果
- 4630 no pain no game 树状数组
- Linux下彻底卸载LibreOffice方法
- SGU 181.X-Sequence
- Android异步载入全解析之使用多线程
- 【百度地图API】批量地址解析与批量反地址解析(带商圈数据)
- Android -- 自定义ScrollView实现放大回弹效果
- JAVA课程设计+购物车 个人博客
- IDEA打包jar包
- phpStudy环境安装SSL证书教程
- 在Django中使用ForeignKey()报错问题的解决
- 机器学习入门11 - 逻辑回归 (Logistic Regression)
- 用单向链表实现两数倒序相加(java实现)
- PHP----------用curl方式请求接口在同一个项目里面的时候不能请求的情况
- 发布自己的npm包、开源项目
- Spring Cloud Consul使用——配置中心
- Aspects源码解析(转载)
- hihoCoder week2 Trie树