Every classic web server speaks the Common Log Format — a single text line per request: remote host, identity, user, a bracketed timestamp, the quoted request, the HTTP status and the response size in bytes. Reading it as structured data usually means writing a parser or wrestling with awk and fragile field-splitting. CLF to JSON Converter parses those lines into clean JSON records in one paste, with no code to write.
Each line becomes an object with the remote host (ip), identity and user fields, a parsed timestamp, the request split into method, path and protocol, the numeric HTTP status, and the response bytes as a number rather than a string. The extended Combined Log Format — CLF plus a trailing quoted Referer and User-Agent — is recognized too. With Auto-detect selected, the converter checks each line independently, so a file where some requests came with a referer (browser navigation) and others didn’t (API calls, health checks) still converts correctly without you splitting the file first. You can also pin the format explicitly: choosing CLF tells the converter to ignore any trailing referer/user-agent fields even if a line happens to have them, which is useful when you want a uniform, minimal schema across every record regardless of what the source log contains; choosing Combined captures those fields whenever present.
Apache’s own placeholder convention — a bare - standing in for “no value” — is handled the same way for identity, user, referer and user-agent: with Skip ‘-’ placeholders checked, those keys are simply left out of the object; unchecked, they appear as explicit null, which keeps every record the same shape for tools that expect a fixed schema (a CSV loader, a typed database column, a JSON-schema validator).
Timestamps convert from Apache’s bracketed [10/Oct/2000:13:55:36 -0700] form to UTC ISO 8601 — correctly applying the line’s own offset — or stay as the raw string, or come out as Unix milliseconds for systems that sort or partition on epoch time. Output is a pretty-printed JSON array for reading, a compact single-line array for smaller payloads, or JSONL — one record per line — for streaming ingestion; the download button names the file .json or .jsonl to match. Everything runs locally in your browser: paste, convert, copy or download, done, with nothing ever sent to a server.