【发布时间】:2017-03-09 15:35:08
【问题描述】:
我不想将它打印到控制台或写入某个文件,而是将所有日志(即消息)收集到 Java 对象中的某个字符串集合中,如下所示:
class LogCollector {
List<String> messages;
}
这将使我更容易生成自定义 HTML 报告(只需将“LogCollector”对象传递给某些方法)。如果我可以用 Log4J 实现它会更好。
更详细的问题: 我想做一些类“LoggingPart”:
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 */
}
}
【问题讨论】:
-
看这里:tutorialspoint.com/log4j/log4j_htmllayout.htm 不是你想做的吗?
-
好的,不完全是,但您将我重定向到有趣的可能解决方案 - 覆盖 HtmlLayout 的方法格式,就像在 link 上回答的那样。问题是,在这种情况下,我会通过 log4j 获取这个生成的 HTML,从中提取所需的信息(日志消息)(通过正则表达式?)并以我想要的方式对其进行格式化。有什么方法可以跳过“拉”步骤并直接获取这些消息?
标签: java logging log4j report generator