Plenty of logs never bother with JSON — they are plain key=value sentences: level=INFO action=login user=jdoe ip=10.0.0.5 status=201. Firewall rules, request traces, HAProxy, syslog with structured-data, and hand-rolled app logs all speak this dialect, and reading a thousand such lines row by row is a slow way to find the one level=ERROR you are hunting. Key-Value Log Parser turns each line into a row of its fields, right in your browser, so you can scan, sort and filter instead of squinting at raw text.
The parser understands the messy corners of the format: double- or single-quoted values with embedded spaces and escaped quotes (error="invalid credentials recorded"), [bracketed] values, bare numbers and identifiers, and a leading timestamp that it lifts into its own time column — whether that timestamp appears as a bare ISO 8601 string at the start of the line (2025-06-11T10:00:01Z host=web1 ...) or as an explicit time= key anywhere in the line, both are recognized and neither one clobbers the other. Columns are gathered dynamically from the union of keys your logs actually use — there is no schema to define up front — so every line lands in the same grid alongside its siblings, with missing fields shown as a dash rather than breaking the table.
Level fields (matched against level, severity, lvl, log_level, logLevel or levelname, checked in that priority order across every parsed line) get color-coded badges so ERROR and WARN rows jump out of a sea of INFO and DEBUG. Lines that do not contain any recognizable key=value pair are not silently dropped — they are separated into a Failed lines panel with their original line numbers, so malformed or free-text lines stay visible instead of corrupting the table or vanishing without a trace. A live filter box searches across every field and value in every record (and the original raw line) so you can find the failing request by user, IP, status code, or any other value in a single keystroke.
This is the tool for the everyday work of triaging plain-text infrastructure logs: pasting a chunk of nginx log_format output, a pfSense or iptables trace, or a hand-rolled application logger output, and needing a sortable, filterable, exportable table without writing a regex or standing up a log aggregator. Copy the visible rows as CSV, download the full result as CSV or JSON, or print it — all locally, with nothing ever uploaded.