Tools · raw logs

# Log parser

Text with no grammar at all, until one is found in it. The pattern is asked once, beside your text, with the lines it matches counted.

JSON, YAML, XML, CSV, a log file, or something broken. It stays in this tab.

no signup · runs entirely in your browser · ⌘V works anywhere on this page

## What it does

- Detects the pattern in the 5-line sample — timestamp, level, service, request id, message — and shows it as chips with a live preview
- Says how many lines matched — “matches N of M lines · K kept as raw” — and keeps the unmatched ones in view
- Lifts key=value pairs (logfmt) out of the message into fields of their own
- Reads a Kibana Discover table copied as text — the time in Kibana’s own format, the columns split on runs of spaces — with a pattern written for exactly that paste
- Level chips, a field=value filter, a per-record panel, Compare two runs by record, Convert to CSV, NDJSON or a Markdown table
- Saves a pattern you wrote for the next file that looks like it

## What it will not do

- Tail or follow a file, or connect to a log store. It reads the text you paste or drop.
- Invent structure. A line the pattern does not match is kept as raw text and counted, not dropped or guessed at.
- Ask twice. The question is answered once per file, and Keep as text is a real answer with a door back.

## The sample

The text below is what the first chip opens — a real document the engine reads, not an illustration written for this page.

```
2026-04-21T14:32:08.412Z INFO  [checkout-api] req=b29f0c1a stripe.charge.completed amount=17054 latency=88ms
2026-04-21T14:32:07.940Z WARN  [checkout-api] req=4471dd90 retry.scheduled attempt=2 backoff=400ms
2026-04-21T14:32:07.813Z ERROR [checkout-api] req=9c02fe13 stripe.webhook.signature_invalid
2026-04-21T14:32:07.512Z INFO  [checkout-api] req=08bb31f7 cart.items.priced items=2 total=14900
2026-04-21T14:32:06.301Z INFO  [auth-svc]     req=51e8cc02 session.token.issued ttl=3600
```

## How

- Paste the log, or drop the file.
- Check the pattern chips and the preview beside your lines; adjust them, or write your own regular expression, if the guess is wrong.
- Read as records. Filter by level or field, open a row, Compare against another run.

## Questions

### Which log formats does it read?

Logfmt, and any line with a timestamp, a level and a message it can find a pattern for. JSON lines open as NDJSON instead. A file it cannot find a pattern in is offered as text.

### Can I write my own pattern?

Yes — a regular expression, edited beside the preview and saved for the next file that matches it.

### Does it handle a Kibana or Elastic export?

A Discover CSV export opens as rows — see the CSV page. A raw log pasted from a console opens here.

### What happens to lines that do not match?

They are counted — “N kept as raw” — and stay in the list as raw lines, never hidden.

## Behind this page

## Try it on the file that broke your afternoon.

free while in alpha · no signup

---

Canonical: https://unstringify.com/tools/log-parser
