From 41436de8bd72e15be59bba4a8b0d520a78ebd59f Mon Sep 17 00:00:00 2001 From: bvn13 Date: Fri, 31 Mar 2023 10:52:42 +0300 Subject: [PATCH] log sorter --- .../java/me/bvn13/logsorter/LogSorter.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/log-sorter/log-sorter/src/main/java/me/bvn13/logsorter/LogSorter.java b/log-sorter/log-sorter/src/main/java/me/bvn13/logsorter/LogSorter.java index b1acd98..481e69e 100644 --- a/log-sorter/log-sorter/src/main/java/me/bvn13/logsorter/LogSorter.java +++ b/log-sorter/log-sorter/src/main/java/me/bvn13/logsorter/LogSorter.java @@ -32,6 +32,7 @@ public class LogSorter { continue; } String previousLine = null; + int lineNum = 1; for (String line : lines) { if (line.indexOf(" ") != timestampLength) { previousLine = append(previousLine, line); @@ -39,7 +40,7 @@ public class LogSorter { if (previousLine != null) { logs.add(new LogEntry(previousLine, filename)); } - previousLine = line; + previousLine = putLineNumber(timestampLength, lineNum++, lines.size(), line); } } if (previousLine != null) { @@ -60,6 +61,22 @@ public class LogSorter { return " ".repeat(Math.max(0, length)); } + private static String putLineNumber(int timestampLength, int lineNumber, int linesCount, String line) { + if (line.length() <= timestampLength) { + return line; + } + return line.substring(0, timestampLength) + "-" + fillNumber(lineNumber, digitsCount(linesCount)) + line.substring(timestampLength); + } + + private static String fillNumber(int n, int length) { + final String s = "0".repeat(length) + n; + return s.substring(s.length() - length); + } + + private static int digitsCount(int number) { + return String.valueOf(number).length(); + } + private static String append(String a, String b) { StringBuilder sb = new StringBuilder(); if (a != null) {