Log Line Parser

Parse nginx, Apache, JSON, or custom-regex log lines into a color-coded table with stats. Runs entirely in your browser.

Input

How it works

About Log Line Parser

Access logs are the first place to look when something feels off — slow requests, 404 crawls, or a burst of 5xx. This parser turns raw combined-format lines into a readable table plus a histogram, so you can spot the pattern without firing up a full log-analysis stack.

Everything runs locally: your log lines never leave the browser. The table caps at 200 displayed rows for performance, but the stats cover every line you paste. The custom mode uses JavaScript regular expressions with named groups, so any log format you can describe with a regex becomes a table.

What the built-in patterns actually pin down

The nginx and Apache patterns are fully anchored with `^` and a trailing `$`, and the three quoted fields — request, referer, user agent — are matched as `[^\"]*`. That single decision is the parser's sharpest limit: a user-agent string containing a literal double quote, which real agents do send, terminates the field early and the whole line fails to match. The same applies to a space inside any of the three leading `\S+` tokens, since whitespace is the field separator.

nginx accepts one extra optional quoted group after the user agent, which is why a trailing `"-"` on the end of a line is tolerated there and not in the Apache pattern. Once matched, the request string is split on spaces after the fact: element zero is the method, element one the path, and the HTTP version is discarded. A request line with an embedded space in the target therefore shifts the path column rather than failing.

Timestamps stay strings, so nothing gets sorted

`time_local` holds the raw bracketed text, `08/Sep/2026:14:23:11 +0000`, exactly as captured. It is never parsed into a date, never normalised to UTC, and never compared — the offset is carried along as decoration. Rows come out in paste order, so a rotated-and-concatenated file keeps its out-of-order timestamps, and no column of these results is sortable by time without a second pass.

Two other fields resist arithmetic for similar reasons. `body_bytes_sent` keeps the literal `-` that nginx writes when no body was sent, so the column mixes strings and numbers. The status histogram only counts values matching three digits exactly, which quietly excludes any status a custom pattern captured with surrounding text.

Custom patterns and very large pastes

Custom mode builds a JavaScript `RegExp` from your source with no flags, so `^` and `$` anchor a single line, and the named groups become the table columns — the union of group names across all parsed rows, in first-seen order. There is no execution timeout, which means a pattern with nested quantifiers can backtrack pathologically and lock the tab rather than fail. A loose source-level test checks that at least one `(?<name>` appears, so an invalid group name surfaces as a constructor error instead.

Display is capped at 200 rows with a note about the remainder, while the statistics cover every non-blank line you pasted. The catch is memory: the whole paste lives in one string, is split into an array of line strings, and every successfully parsed object is retained in an array for the JSON export. Multi-megabyte pastes are handled in one blocking synchronous pass, so for real log files a streaming command-line tool is the better instrument.

Frequently Asked Questions

How do I parse log files online?
Paste your log file content (any format: Apache, Nginx, syslog, JSON, or custom) into the input and click Parse. The tool detects the log format automatically and structures it into fields. You can then filter and search the parsed entries.
What log formats are supported?
Apache combined/logformat, Nginx error/access logs, syslog (RFC 3164/5424), JSON Lines, and common custom formats with timestamps, levels, and messages. Auto-detection selects the most likely format.
Is my data sent to a server?
No. Every tool on jsonversal runs entirely in your browser using the Web Crypto API, File API, and Clipboard API. Nothing is ever uploaded — not even the JSON you paste in.
Do I need an account or API key?
No signup, no email, no API key. All tools are free to use with no signup required.
Can I use these tools offline?
Yes. Once the page loads, all tools work offline. There are no external API calls or CDN dependencies at runtime.
🔒
Your data never leaves your device

All processing happens in your browser. No uploads, no tracking, no servers. Your API keys, configs, and private payloads stay private — 100% client-side.

esc
↑↓ navigate ↵ open esc close