我想将 log4j 消息存储到 java util list,然后从列表中获取 log4j 消息。那么我们如何将 log4j 消息存储到列表中。请帮助我我们该怎么做。
最佳答案
根据您使用的 Appender,您可以创建此自定义 Appender,定期附加消息并将其缓存在列表中:
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.RollingFileAppender;
import org.apache.log4j.spi.LoggingEvent;
public class MyRollingFileAppender extends RollingFileAppender {
private List<LoggingEvent> events = new ArrayList<>();
@Override
public synchronized void doAppend(LoggingEvent event) {
events.add(event);
super.doAppend(event);
}
public synchronized List<LoggingEvent> getEvents() {
List<LoggingEvent> clone = new ArrayList<>(events);
events.clear();
return clone;
}
}
- 您当然可以覆盖您希望的任何其他 Appender,还可以记录或“取消记录”消息(事件)
关于java - 我们如何将 log4j 消息存储到 java util 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25657983/