Парсер логов
Вставьте сырые логи — JSON, logfmt, веб-доступ, syslog или простой текст — и получите метки времени, уровни, исключения и ключевые поля без написания шаблона.
Диапазон времени
2026-10-20T13:55:36.123Z INFO [gateway] request received path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004Z","level":"error","service":"payment","message":"Charge failed","order_id":"A-1042","user_id":4821}
127.0.0.1 - alice [20/Oct/2026:13:55:38 +0000] "POST /api/orders HTTP/1.1" 502 187 "-" "curl/8.5.0"
2026-10-20 13:55:40,512 ERROR [order-service] Unhandled exception while submitting order
java.lang.IllegalStateException: gateway timeout
at com.acme.Order.submit(Order.java:42)
Caused by: java.net.SocketTimeoutException: Read timed out
at com.acme.Gateway.call(Gateway.java:77)
2026-10-20T13:55:41.900Z WARN [gateway] retry scheduled attempt=2 order_id=A-1042Как пользоваться
- Вставьте фрагмент лога или откройте локальный файл .log / .txt. Разбор начинается сразу — кнопки «Запустить» нет — и каждая строка проверяется на JSON, logfmt, веб-доступ, syslog и текст с меткой времени или уровнем именно в этом порядке.
- Сначала прочитайте сводку: диапазон времени, количество по уровням, исключения, определённые форматы и самые частые ключи полей. Сводка всегда охватывает все события.
- Нажмите на уровень или введите запрос в поле поиска, чтобы сузить список; оба условия складываются. Нажмите на строку, чтобы раскрыть полное сообщение, все поля, стек исключения и исходную строку, а затем скопируйте или скачайте отфильтрованные события в JSON.
Пример
Сырой лог
2026-10-20T13:55:36.123Z INFO [gateway] request received path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004Z","level":"error","service":"payment","message":"Charge failed","order_id":"A-1042","user_id":4821}
127.0.0.1 - alice [20/Oct/2026:13:55:38 +0000] "POST /api/orders HTTP/1.1" 502 187 "-" "curl/8.5.0"
2026-10-20 13:55:40,512 ERROR [order-service] Unhandled exception
java.lang.IllegalStateException: gateway timeout
at com.acme.Order.submit(Order.java:42)Разобранная сводка
События: 4 · Строки: 6 Диапазон времени: 2026-10-20T13:55:36.123Z → 2026-10-20T13:55:40.512 (смешанные зоны) Уровни: информация 1 · ошибка 3 Исключения: 1 Форматы: JSON 1 · Веб 1 · Текст 2 Поля: path 2 · user_id 2 · bytes 1 · client 1 · method 1 · order_id 1 · protocol 1 · status 1
Строка JSON — одно событие; строка класса Java и её стек — продолжение события ERROR выше. Строка текста без зоны сравнивается как буквальное время на часах, поэтому диапазон помечен как смешанные зоны. HTTP 502 считается ошибкой; исходный уровень со статусом остаётся видимым.
Правила, ограничения и известные проблемы
- Определение идёт построчно и по порядку: JSON (один объект на строку), logfmt (минимум две пары key=value), общий или комбинированный access log Apache/Nginx, syslog RFC 5424/3164, затем текст, строка которого начинается с поддерживаемой метки времени или уровня. Всё остальное сохраняется как простое событие — ни одна строка не теряется.
- Нормализуются только однозначные метки времени: ISO 8601, даты с годом впереди, время access log Apache и секунды или миллисекунды Unix. 03/04/2026, значения только с датой и syslog без года сохраняют исходный текст и не получают нормализованного времени.
- Доли секунды усекаются до миллисекунд и никогда не округляются. Смещения сохраняются; время без смещения сравнивается как буквальное время на часах, и сводка указывает «без зоны» или «смешанные зоны».
- Уровни берутся из фиксированного словаря (английские, китайские и арабские слова), чисел pino/bunyan, PRI/серьёзности syslog или HTTP-статуса (5xx — ошибка, 4xx — предупреждение, остальное — информация). Строка без распознанного уровня считается неизвестной, а не информационной.
- Строки с отступом, кадры стека, Traceback, Exception in thread и Caused by присоединяются к предыдущему событию; пустая строка завершает стек. Это эвристика — для неподдерживаемого многострочного формата может понадобиться пустая строка между записями.
- Исключения распознаются по именам классов, оканчивающимся на Exception, Error или Throwable. Побеждает самый глубокий Caused by. Кадры не разбираются, причины глубже этого не ранжируются, и никакой AI-сервис не вызывается.
- В списке отображается не более 200 подходящих событий. Счётчики, сводка, копирование и скачивание всегда охватывают все совпадения, а список сообщает, когда он усечён.
- Жёсткое ограничение ввода: 5 000 000 символов. При длине свыше 500 000 символов разбор всё ещё работает, но с большей задержкой. Одна строка длиннее 200 000 символов сохраняется как простой текст.
- Массивы JSON и многострочный JSON с отступами не поддерживаются: только один объект на строку. Некорректный JSON, комментарии и висячие запятые относятся к простому тексту, а не исправляются.
- Ничего не загружается, не сохраняется и не попадает в URL. Файлы читаются локально через File API браузера, а копирование и скачивание выполняются только по нажатию кнопки.
Похожие инструменты
Когда лог уже структурирован, обычно переходят к этому.