package it.cavallium; import java.util.ArrayList; import java.util.Collections; import java.util.LinkedList; import java.util.List; import org.slf4j.event.Level; import reactor.core.publisher.Flux; import reactor.core.publisher.ReplayProcessor; public class LogServiceImpl implements LogService { private static final int SIZE = 1000; private ReplayProcessor logs = ReplayProcessor.create(SIZE); @Override public Flux listenUpdates() { return logs.hide(); } @Override public void append(Level level, String message) { logs.onNext(new LogEntry(System.currentTimeMillis(), level, message.length() > 512 ? message.substring(0, 512) : message)); } @Override public int getMaxSize() { return SIZE; } }