我正在尝试使用log4j将缺省的其余保证日志(转到控制台)更改为文件。如何获得放心的日志到文本文件中可打印的东西
这是一个JUnit项目,其方法最终调用REST外观,它有像这样的方法。
private ResponseSpecification responseSpecification(RequestSpecification requestSpecification, Matcher matcher, int statusCode) {
ResponseSpecification responseSpecification = requestSpecification.expect().statusCode(StatusCode).body(".", is(matcher));
if (log) {
responseSpecification = responseSpecification.log().all();
}
return responseSpecification;
}
继official doc,我已经改变了方法是这样的:
private ResponseSpecification responseSpecification(RequestSpecification requestSpecification, Matcher matcher, int statusCode) {
final StringWriter writer = new StringWriter();
final PrintStream captor = new PrintStream(new WriterOutputStream(writer), true);
ResponseSpecification responseSpecification = requestSpecification.filter(logResponseTo(captor)).expect().statusCode(statusCode).body(".", is(matcher));
System.out.println("writer = " + writer.toString() + " <-");
return responseSpecification;
}
但writer.toString()
打印总是一个无效的字符串(旧实现正常工作)。也许我做错了什么,但是什么? :(
我需要得到的东西打印可以通过log4j的管理,在这个或其他方式。
谁能帮助我?