0
コンソールに印刷するか、ファイルに書き込むのではなく、すべてのログ(メッセージ)を次のようにJavaオブジェクトのStringコレクションに収集します:log4jから1つのjavaオブジェクトにログ(メッセージ)を集めることができます
class LogCollector {
List<String> messages;
}
これで、カスタムHTMLレポートを生成するのが簡単になりました(いくつかのメソッドに "LogCollector"オブジェクトを渡すだけです)。これをLog4Jで実装できるのが望ましいでしょう。
より詳細な問題: 私はいくつかのクラス「LoggingPart」を作りたい:私はすべての作成カスタムTestNGのリスナーの中で、多くのことを推奨されているが、解決策は本当に簡単です
class LoggingPart {
String name;
List<String> messages;
List<LoggingPart> parts = new ArrayList<>();
public static void start(String name) {
parts.add(new LoggingPart(name));
/* Logic that after every call LoggingPart.start("someName") */
/* in some other class will start collecting messages from */
/* logger into LoggingPart instance of name "someName" */
/* Report will be generated only of messages from particular */
/* instance with specified name */
}
}
ここを見てください:https://www.tutorialspoint.com/log4j/log4j_htmllayout.htm あなたは何をしたいのですか? –
確かにそうではありませんが、興味深い解決策にリダイレクトされました.HtmlLayoutのメソッドフォーマットをオーバーライドしていますが、この[link](http://stackoverflow.com/questions/12583374/how-to-change-the-htmllayout-in -log4j)。 私は、この場合、log4jによって生成されたHTMLを取り込み、必要な情報(ログメッセージ)を(正規表現を介して)プルし、必要な方法でフォーマットします。その "牽引"のステップをスキップして、それらのメッセージを直接取得する方法はありますか? – milosdju