Skip to content
Snippets Groups Projects

Add a way to view the core's logs from the UI

9 files
+ 292
0
Compare changes
  • Side-by-side
  • Inline

Files

package nl.tudelft.ewi.auta.core.controller;
import nl.tudelft.ewi.auta.core.logging.RingbufferAppender;
import nl.tudelft.ewi.auta.core.response.Response;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.annotation.Secured;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.Map;
/**
* A controller serving log requests.
*/
@Controller
public class LogController {
/**
* The ring buffer appender logs are written to.
*/
private final RingbufferAppender ringbufferAppender;
/**
* Creates a new log controller.
*
* @param ringbufferAppender the ring buffer appender logs are written to
*/
public LogController(final RingbufferAppender ringbufferAppender) {
this.ringbufferAppender = ringbufferAppender;
}
/**
* Returns the logs in the core's ring buffer.
*
* @return the logs
*/
@GetMapping("/api/v1/logs/core")
@Secured("ROLE_ADMIN")
public ResponseEntity<Response> getCoreLogAction() {
return ResponseEntity.ok(new Response(
Map.of("log", this.ringbufferAppender.getMessages())
));
}
}
Loading