Junit でテストできるように、このメソッド myLogger.log(e) の出力を String 変数で取得したいと考えています。
myLogger.log(e);
String s= ????
assertEqual(expected,s);
StringWriter に書き込む log4j アペンダーを作成できます。この投稿を見てください:
ロガーにアペンダーを追加できます。WriterAppenderを使用してStringWriterに書き込み、TextAreaのコンテンツをStringWriter#toString()の値に変更します。
public static void main(String[] args) {
Logger logger = Logger.getLogger("logger");
Layout layout = new PatternLayout();
StringWriter stringWriter = new StringWriter();
WriterAppender writerAppender = new WriterAppender(layout, stringWriter);
logger.addAppender(writerAppender);
logger.error("test");
String string = stringWriter.toString();
System.out.println(string);
}
ここで説明されているように。