TransferBot/src/main/java/it/cavallium/LogServiceImpl.java

32 lines
741 B
Java

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<LogEntry> logs = ReplayProcessor.create(SIZE);
@Override
public Flux<LogEntry> 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;
}
}