log4jを使用して、デフォルトの安心ログ(コンソールに送られる)をファイルに変更しようとする方法に取り組んでいます。
これは、メソッドが最終的に REST ファサードを呼び出す JUnit プロジェクトであり、このようなメソッドがあります。
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;
}
公式ドキュメントに従って、次のようにメソッドを変更しました。
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 で管理できる印刷可能なものを取得する必要があります。
誰でも私を助けることができますか?