У меня есть пользовательский Appender что складывает LoggingEvent
S к ArrayList
из LoggingEvent
, следующим образом:log4j: пользовательский Appender и доступ к методу из регистратора, например
import java.util.ArrayList;
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.LoggingEvent;
public class PayloadLogAppender extends AppenderSkeleton {
private final ArrayList<LoggingEvent> eventsList = new ArrayList();
@Override
protected void append(LoggingEvent event) {
eventsList.add(event);
}
public void close() {
}
public boolean requiresLayout() {
return false;
}
public ArrayList<LoggingEvent> getAllMessages() {
return this.eventsList;
}
}
Я добавил пользовательский Appender к моему log4j. свойства, и она загружается нормально:
log4j.appender.payloadLog=PayloadLogAppender
Теперь в моем приложении я получить доступ к регистратору обычным способом, используя getLogger()
, , но в конце концов, я хотел бы иметь ухватить список событий Список. Я создал метод getAllMessages()
в appender и хотел бы назвать это, когда у меня есть мой экземпляр журнала. Есть ли logger.getAllMessage()
все, что необходимо, чтобы получить ссылку на eventsList
?
Что вы видите, когда пытаетесь logger.getAllMessages, когда используете его в конце? – bgth
Я получаю это: Вызвано: java.lang.Error: Неразрешенная проблема компиляции: \t Метод getAllMessages() не определен для типа Logger –