32 lines
741 B
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;
|
|
}
|
|
}
|