Проблема:Перестановка файла журнал на основе ключевых слов
Я регулярно работать с большими файлами журнал, и я хотел бы организовать некоторые данные, относящиеся к, которые получают, написанные спорадический через файл вместе, чтобы потенциально отслеживать проблемы проще.
Пример данных, записанных в файл журнала:
1. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
2. 2016-05-05 15:07:54,993 DEBUG (default task-16) ==> More stuff written on this line.
3. 2016-05-05 15:07:54,993 DEBUG (default task-2) ==> More stuff written on this line.
4. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
5. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
6. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
7. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
8. 2016-05-05 15:07:54,993 DEBUG (default task-2) ==> More stuff written on this line.
9. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
10. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
11. 2016-05-05 15:07:54,993 DEBUG (default task-6) ==> More stuff written on this line.
12. 2016-05-05 15:07:54,993 DEBUG (default task-3) ==> More stuff written on this line.
13. 2016-05-05 15:07:54,993 DEBUG (default task-2) ==> More stuff written on this line.
14. 2016-05-05 15:07:54,993 DEBUG (default task-14) ==> More stuff written on this line.
15. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
Я, естественно, решили использовать (по умолчанию Задачи- NUMBER
), как мой идентификатор для группирования связанных строк вместе.
Я построил свой пользовательский интерфейс, и идея в том, что я хотел бы извлечь извлечение из исходного файла журнала, а затем вставить его в jTextArea
в мое приложение Java, нажать кнопку и, как магия, все соответствующие номера задач (по умолчанию - NUMBER
) будут сгруппированы вместе. (На первый простой println
сгруппированных данных в моем IDE этих данных было бы идеально, конечно)
Я сейчас работаю на метод, который принимает весь текст вставленный в jTextArea
и работает через него, созданную строку массив, который я позже расширить, чтобы найти любое количество номеров задач, в настоящее время он выдвигает на первый план все цифры, которые он находит, (не уверен, если я на правильном пути, хотя):
import java.awt.Color;
import javax.swing.JTextArea;
import javax.swing.text.BadLocationException;
import javax.swing.text.Document;
public class ArrangeLogic {
public void groupLogFile(JTextArea theLogs) {
String[] myStringArray = {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35"};
for (int i = 0; i < myStringArray.length - 1; i++) {
String element = myStringArray[i];
String nextElement = myStringArray[i + 1];
String defaultTaskOdd = ("(default task-" + element + ")");
String defaultTaskEven = ("(default task-" + nextElement + ")");
System.out.println(defaultTaskOdd);
System.out.println(defaultTaskEven);
try {
Document document = theLogs.getDocument();
for (int index = 0; index + defaultTaskOdd.length() < document.getLength(); index++) {
String match = document.getText(index, defaultTaskOdd.length());
if (defaultTaskOdd.equals(match)) {
javax.swing.text.DefaultHighlighter.DefaultHighlightPainter highlightPainter
= new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW);
theLogs.getHighlighter().addHighlight(index, index + defaultTaskOdd.length(),
highlightPainter);
}
}
for (int index = 0; index + defaultTaskEven.length() < document.getLength(); index++) {
String match = document.getText(index, defaultTaskEven.length());
if (defaultTaskEven.equals(match)) {
javax.swing.text.DefaultHighlighter.DefaultHighlightPainter highlightPainter
= new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW);
theLogs.getHighlighter().addHighlight(index, index + defaultTaskEven.length(),
highlightPainter);
}
}
} catch (BadLocationException ex) {
}
}
}
}
Я играл вокруг с несколькими идеи на весь день (да, я очень начинающий разработчик) о том, как пройти через все линии и повторно группировать их вместе, пока не везет, поэтому я подумал, что попрошу совета. Любая помощь или предложения были бы весьма признательны. Благодарю.
(EDIT)
Ожидаемый результат (ЛИНИЯ ЧИСЛА НЕ ИМЕЕТ ЗНАЧЕНИЯ):
1. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
5. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
10. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
15. 2016-05-05 15:07:54,993 DEBUG (default task-1) ==> More stuff written on this line.
2. 2016-05-05 15:07:54,993 DEBUG (default task-16) ==> More stuff written on this line.
3. 2016-05-05 15:07:54,993 DEBUG (default task-2) ==> More stuff written on this line.
8. 2016-05-05 15:07:54,993 DEBUG (default task-2) ==> More stuff written on this line.
13. 2016-05-05 15:07:54,993 DEBUG (default task-2) ==> More stuff written on this line.
4. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
6. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
7. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
9. 2016-05-05 15:07:54,993 DEBUG (default task-33) ==> More stuff written on this line.
11. 2016-05-05 15:07:54,993 DEBUG (default task-6) ==> More stuff written on this line.
12. 2016-05-05 15:07:54,993 DEBUG (default task-3) ==> More stuff written on this line.
14. 2016-05-05 15:07:54,993 DEBUG (default task-14) ==> More stuff written on this line.
Так что вы хотите получить список номеров задач по умолчанию? – Cukic0d
Мне нужна вся строка, я добавлю это к моему оригинальному сообщению, спасибо! – BernardV
Извините, я не уверен, что хорошо понял ... Вам нужно получить каждую линию в зависимости от номера задачи по умолчанию? – Cukic0d