Граница записи лога
Граница записи лога
При настройке правил временных меток и разделения функция границы записи лога в Ключ-АСТРОМ позволяет определять шаблоны, которые отмечают начало многострочной записи лога. В поле Граница записи можно ввести шаблон фрагмента строки, который отмечает начало многострочной записи.
Можно определить несколько правил для одного лога, например для логов с несколькими различными форматами записей. При определении нового правила можно, но не обязательно, заполнять такие поля, как Шаблон и Лимит поиска временной метки. Они необязательны, как и поле Граница записи. Символ * обрабатывается буквально, без поддержки подстановочных знаков.
ЕдиныйАгент анализирует каждую строку заданного лога и применяет её к последовательным правилам. Если строка содержит текстовый фрагмент, соответствующий шаблону любого правила, создание текущей записи завершается и начинается создание новой записи.
Пример с одним приложением
Ниже приведён пример лога, созданного одним приложением:
Timestamp - 2024.10.01 9:30:00 Third line First line Timestamp - 2024.10.01 9:31:00 Third line First line Timestamp - 2024.10.01 9:32:00 Third line First line Timestamp - 2024.10.01 9:33:00 Third line
Определение границы записи: First line
Результат разделения:
Timestamp - 2024.10.01 9:30:00 Third line First line Timestamp - 2024.10.01 9:31:00 Third line First line Timestamp - 2024.10.01 9:32:00 Third line First line Timestamp - 2024.10.01 9:33:00 Third line
Пример с двумя приложениями
ЕдиныйАгент также может обрабатывать случай, когда два разных приложения пишут в один и тот же лог с разными форматами записей. Для этого нужно добавить несколько дополнительных правил с шаблонами для разных начал записей.
Ниже приведён пример лога, в который два разных приложения пишут с разными форматами записей:
'info':'sun.nio.ch.NioSocketImpl.implRead','stream':'stdout',time': 2024-09-05 07:09:46 UTC}<LogEntry><PosRequest 2024-09-05 07:16:14 UTC><Request><RequestGuid>Content: 2024-09-05 07:16:14 UTC, Id: a9bb-5227b248a0a4</RequestGuid></Request></LogEntry>{{{'log':'\u0009at'}}'info':'sun.nio.ch.NioSocketImpl.implRead','stream':'stdout',time': 2024-09-05 07:09:46 UTC}<LogEntry><PosRequest 2024-09-05 07:16:14 UTC><Request><RequestGuid>Content: 2024-09-05 07:16:14 UTC, Id: a9bb-5227b248a0a4</RequestGuid></Request></LogEntry>Определения границы записи:
- Правило:
<LogEntry> - Правило:
'}}
Записи будут разделены следующим образом:
'info':'sun.nio.ch.NioSocketImpl.implRead','stream':'stdout',time': 2024-09-05 07:09:46 UTC}<LogEntry><PosRequest 2024-09-05 07:16:14 UTC><Request><RequestGuid>Content: 2024-09-05 07:16:14 UTC, Id: a9bb-5227b248a0a4</RequestGuid></Request></LogEntry>
{{{'log':'\u0009at'}}'info':'sun.nio.ch.NioSocketImpl.implRead','stream':'stdout',time': 2024-09-05 07:09:46 UTC}<LogEntry><PosRequest 2024-09-05 07:16:14 UTC><Request><RequestGuid>Content: 2024-09-05 07:16:14 UTC, Id: a9bb-5227b248a0a4</RequestGuid></Request></LogEntry>