diff options
author | Ola Aunrønning <ola.aunroe@gmail.com> | 2018-09-13 16:04:22 +0200 |
---|---|---|
committer | Ola Aunrønning <ola.aunroe@gmail.com> | 2018-09-18 10:27:33 +0200 |
commit | 96427331aa1d61eed9a2a0ef5999100b43e30282 (patch) | |
tree | a59faf4ffa44d8d09e70ef0e80cb80dcbd79508a /container-core/src/main | |
parent | eb05c7a5b60ccf448b59038d7416c67f6aa68958 (diff) |
filter number of logs
Diffstat (limited to 'container-core/src/main')
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/handler/LogHandler.java | 9 | ||||
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/handler/LogReader.java | 32 |
2 files changed, 37 insertions, 4 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/handler/LogHandler.java b/container-core/src/main/java/com/yahoo/container/handler/LogHandler.java index 4183b642af1..a6918ed0442 100644 --- a/container-core/src/main/java/com/yahoo/container/handler/LogHandler.java +++ b/container-core/src/main/java/com/yahoo/container/handler/LogHandler.java @@ -24,9 +24,16 @@ public class LogHandler extends ThreadedHttpRequestHandler { @Override public HttpResponse handle(HttpRequest request) { JSONObject logJson; + LogReader logReader; try { - logJson = LogReader.readLogs(LOG_DIRECTORY); + if (request.hasProperty("numberOfLogs")) { + int numberOfLogs = (Integer.valueOf(request.getProperty("numberOfLogs"))); + logReader = new LogReader(numberOfLogs); + } else { + logReader = new LogReader(); + } + logJson = logReader.readLogs(LOG_DIRECTORY); } catch (IOException | JSONException e) { return new HttpResponse(404) { @Override diff --git a/container-core/src/main/java/com/yahoo/container/handler/LogReader.java b/container-core/src/main/java/com/yahoo/container/handler/LogReader.java index eb00446dd0e..9ac40158e07 100644 --- a/container-core/src/main/java/com/yahoo/container/handler/LogReader.java +++ b/container-core/src/main/java/com/yahoo/container/handler/LogReader.java @@ -7,21 +7,42 @@ import javax.xml.bind.DatatypeConverter; import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.util.Arrays; +import java.util.Comparator; public class LogReader { - protected static JSONObject readLogs(String logDirectory) throws IOException, JSONException { + int numberOfLogs; + + public LogReader() { + this.numberOfLogs = -1; + } + + public LogReader(int numberOfLogs) { + this.numberOfLogs = numberOfLogs; + } + + protected JSONObject readLogs(String logDirectory) throws IOException, JSONException { JSONObject json = new JSONObject(); File root = new File(logDirectory); traverse_folder(root, json); return json; } - private static void traverse_folder(File root, JSONObject json) throws IOException, JSONException { - for(File child : root.listFiles()) { + private void traverse_folder(File root, JSONObject json) throws IOException, JSONException { + File[] files = root.listFiles(); + Arrays.sort(files,new Comparator<File>(){ + public int compare(File f1, File f2) + { + return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified()); + } }); + Arrays.sort(files, Comparator.reverseOrder()); + for(File child : files) { + if (numberOfLogs == 0) return; JSONObject childJson = new JSONObject(); if(child.isFile()) { json.put(child.getName(), DatatypeConverter.printBase64Binary(Files.readAllBytes(child.toPath()))); + decrementLogNumber(); } else { json.put(child.getName(), childJson); @@ -29,4 +50,9 @@ public class LogReader { } } } + + private void decrementLogNumber() { + numberOfLogs -= 1; + } + } |