aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/handler/LogReader.java
diff options
context:
space:
mode:
authorOla Aunrønning <ola.aunroe@gmail.com>2018-09-13 16:04:22 +0200
committerOla Aunrønning <ola.aunroe@gmail.com>2018-09-18 10:27:33 +0200
commit96427331aa1d61eed9a2a0ef5999100b43e30282 (patch)
treea59faf4ffa44d8d09e70ef0e80cb80dcbd79508a /container-core/src/main/java/com/yahoo/container/handler/LogReader.java
parenteb05c7a5b60ccf448b59038d7416c67f6aa68958 (diff)
filter number of logs
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/handler/LogReader.java')
-rw-r--r--container-core/src/main/java/com/yahoo/container/handler/LogReader.java32
1 files changed, 29 insertions, 3 deletions
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;
+ }
+
}