From a4bcd4451cefef10364bdd46677403e354177a86 Mon Sep 17 00:00:00 2001 From: CalDescent Date: Sat, 30 Apr 2022 12:07:47 +0100 Subject: [PATCH] Added "tail" parameter to GET /admin/logs to allow returning the last X (limit) lines. This should make it easy to display core logs in the UI. --- .../java/org/qortal/api/resource/AdminResource.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/org/qortal/api/resource/AdminResource.java b/src/main/java/org/qortal/api/resource/AdminResource.java index 277b5f00..b14d774f 100644 --- a/src/main/java/org/qortal/api/resource/AdminResource.java +++ b/src/main/java/org/qortal/api/resource/AdminResource.java @@ -381,6 +381,10 @@ public class AdminResource { ) @QueryParam("limit") Integer limit, @Parameter( ref = "offset" ) @QueryParam("offset") Integer offset, @Parameter( + name = "tail", + description = "Fetch most recent log lines", + schema = @Schema(type = "boolean") + ) @QueryParam("tail") Boolean tail, @Parameter( ref = "reverse" ) @QueryParam("reverse") Boolean reverse) { LoggerContext loggerContext = (LoggerContext) LogManager.getContext(); @@ -396,6 +400,13 @@ public class AdminResource { if (reverse != null && reverse) logLines = Lists.reverse(logLines); + // Tail mode - return the last X lines (where X = limit) + if (tail != null && tail) { + if (limit != null && limit > 0) { + offset = logLines.size() - limit; + } + } + // offset out of bounds? if (offset != null && (offset < 0 || offset >= logLines.size())) return "";