Я создал CaptureLogger, который расширяет AbstractLogger.У меня есть код в этом классе, который, когда происходит событие журналирования, захватывает сообщение и сохраняет его в массиве строк.
Однако я не могу подключить этот CaptureLogger к регистратору для класса, который яЯ тестирую.Я попытался сделать
CaptureLogger customLogger = (CaptureLogger) LogManager.getLogger(ClassUnderTest.class);
Где ClassUnderTest - это класс, который я пытаюсь проверить.
Мы используем Lombok Log4j2 для создания и создания нашего логина в коде, поэтому мне нужно остановиться на том, что будет хорошо работать с Lombok.
Кроме того, я использую TestNG в качестве моей инфраструктуры тестирования.
Может ли кто-нибудь предоставить мне указатель или образцы кода для этого?
Спасибо,
Mark
Редактировать
Этофрагмент моего класса CaptureLogger:
public class CaptureLogger extends AbstractLogger {
private List<Object> loggedMessages;
public static Level messageLevel = Level.DEBUG;
private static final long serialVersionUID = 1l; //one-ell
public CaptureLogger(final String name) {
super(name);
loggedMessages = new ArrayList<>();
}
public List<Object> getLoggedMessages(){ return loggedMessages;}
public void setLogLevel(final Level level){
messageLevel = level;
}
@Override
public boolean isEnabled(Level level) {
return true;
}
@Override
public void log(Level level, Object message){
loggedMessages.add(message);
}
@Override
public void log(final Level level, final Supplier<?> msgSupplier) {
log(level, msgSupplier.get());
}
@Override
public boolean isEnabled(Level level, Marker marker, Message message, Throwable t) {
return level == messageLevel;
}