parse a log file into columns - without uploading it anywhere

Production logs are the files you are least allowed to paste into a website. They carry tokens, IP addresses, email addresses, session and account ids. This one never leaves your machine: there is no server to send it to.

Drop a .log and it is read as events rather than lines. The layout is detected from the file itself and applied as a step you can see, edit, switch off, or undo.

how to use it

  1. Drop a .log. The layout is detected and added as a step you can see, edit, switch off, or undo - and multi-line stack traces are folded into the event that logged them.
  2. Check the time column. Timestamps normalize to one sortable UTC column, and any assumption a format forced (syslog carries no year) is stated rather than made silently.
  3. Use the volume strip to find when it went wrong, then drag across the spike - that becomes a real filter step, so the window survives export and travels in a share link.
  4. For anything past the first thousand rows, open the ⚡ engine. There the strip covers the whole timeline, the grid scrolls every row, searching a text column builds a full-text index on first use, and templates group a million messages into a few shapes.
  5. Then treat it as data: filter to the errors, scrub anything sensitive before sharing, and export CSV, JSON, or a .sqlite.

why not just grep it?

Grep is excellent until the question has a shape: how many distinct users hit the error, what the p95 latency was during the incident, which endpoint the timeouts clustered on. Those are column questions, and they need the log to be a table first. Once it is one, the rest of the workbench applies to it.

every tool in the box

Like every unfckr tool, this runs 100% in your browser: no upload, no servers, no signup, no analytics. A Content-Security-Policy header blocks every programmatic network channel, so not even malicious code could phone home - and you can watch it happen: the privacy page runs six live escape attempts and shows the browser refusing each one.

↑ back to the tool