У меня есть ОГРОМНЫЕ файлы журнала (50 МБ; ~ 500 КБ строк), мне нужно начать отфильтровывать некоторые из дерьма. Файлы журналов создаются с использованием log4j и имеют базовый шаблон:
[log-level] date-time class etc, etc
log-message
Я ищу способ, с помощью которого я могу определить начало и конец регулярного выражения (или что-то подобное), чтобы отфильтровать совпадающие записи из файла, чтобы мне было легче проходить через эти массивные файлы. Я думаю, что начальное регулярное выражение будет на уровне журнала, а конечное регулярное выражение будет что-то в сообщении журнала. Я уверен, что мог бы написать Java-программу для выполнения этой задачи, но я решил спросить сообщество, прежде чем идти по этому пути. Заранее спасибо.
Позвольте мне расширить мой вопрос. Предположим, у меня есть следующий фрагмент в файле журнала:
[DEBUG] date-time class etc, etc
log-message-1
[WARN] date-time class etc, etc
log-message-2
[DEBUG] date-time class etc, etc
log-message-3
[DEBUG] date-time class etc, etc
log-message-1
[WARN] date-time class etc, etc
log-message-2
[DEBUG] date-time class etc, etc
log-message-6
Я бы хотел отфильтровать logEntry1 и logEntry2, чтобы я получил:
[DEBUG] date-time class etc, etc
log-message-3
[DEBUG] date-time class etc, etc
log-message-6
Я бы надеялся добиться этого, определив несколько наборов пар шаблонов регулярных выражений. В моем примере выше я хотел бы определить пару для logEntry1 и другую для logEntry2.
Надеюсь, это поможет прояснить мой вопрос.