java - 我们如何将 log4j 消息存储到 java util 列表

标签 java list log4j swt

我想将 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/

相关文章:

java - 在 log4j 2 中使用 throwable 和参数

Maven 插件日志记录

java - 在 Struts2 中如何在没有参数出现在 URL 中的情况下进行永久重定向(状态代码 301)

Java : when is a variable de-referenced

java - 将文本从原始文件复制到剪贴板

R - 列表与重复项的组合?

java - 是否可以通过 Spring Boot 中的 application.properties 修改日志附加器参数?

java - 将对象分配给字符串

android - 带有自定义数据源的分页库在房间更新时不更新行

python - 如何更改列表中的值并创建新列表