All Tools View Categories About Contact Privacy

Log to Markdown Table Converter

Turn structured logs into clean, copy-ready Markdown tables.

Runs entirely in your browser — logs never leave this page.

About Log to Markdown Table Converter

Markdown tables are the de facto way to show structured data in READMEs, GitHub/GitLab issues, pull request descriptions and wikis — but writing one by hand from a log file means counting pipes, padding columns and re-typing a separator row every time the data changes. Get one character wrong and the whole table renders broken. Log to Markdown Table Converter turns structured logs into a ready-to-paste GitHub/CommonMark table in one click, entirely in your browser.

It reads JSON Lines, CSV (comma, semicolon, tab or pipe delimited), key=value lines or tab-separated text, automatically detects which format you pasted, derives the columns from the keys actually present in the data, and emits a proper table with a header row and a :--- separator row underneath it. Pipe characters inside cell values are escaped as \| so a value like a Windows file path or a regex containing a literal pipe can never split a column, and embedded newlines collapse to a single space so every record stays on exactly one table row — a log line that spans one row in your table, not three broken ones.

You stay in control of the result before you paste it anywhere: uncheck any column that is not relevant to the audience (internal IDs, credentials, verbose stack traces), choose left, right or center alignment for the whole table via the colon notation in the separator row, and cap the row count so a huge log becomes a short, readable table sample instead of a wall of rows nobody scrolls through. If a line fails to parse — invalid JSON, a CSV row with the wrong number of fields, a key=value line with no pairs — it is skipped and reported by line number rather than silently corrupting the table or being dropped without a trace.

Once you are happy with the preview, copy the Markdown straight to your clipboard or download it as a .md file. Because the whole conversion — format detection, parsing, escaping and table generation — runs locally in JavaScript, you can safely paste real production log lines, including hostnames, request paths and error text, without any of it being sent to a server.

Features

  • Multiple sources: JSON Lines, CSV, key=value and TSV auto-detected with a manual override.
  • Delimiter control: comma, semicolon, tab or pipe for CSV-style input.
  • Header row: columns derived automatically from your data keys.
  • Column picker: check which fields actually appear in the table without re-pasting data.
  • Alignment: left, right or center for the whole table via separator notation.
  • Escaping: pipes and newlines handled so cells never break the table layout.
  • Row cap: limit output for huge logs so the table stays scannable.
  • Skipped-line reporting: malformed lines are listed, not silently dropped.
  • Clean output: standard GitHub/CommonMark table syntax that renders everywhere.
  • Sample data: realistic log records in one click.
  • Local processing: nothing is uploaded.

How to Use

  1. Paste your log. JSONL, CSV, key=value or TSV lines into the input box, or click Load sample to try realistic log records first.
  2. Check detection. The source format selector shows what was detected; override it if it guessed wrong, and pick the CSV delimiter when relevant.
  3. Pick columns and alignment. Uncheck fields to drop from the table, choose left, right or center alignment, and set the row cap.
  4. Convert. A Markdown table appears instantly with row and byte counts, plus a list of any skipped lines.
  5. Copy or download. Paste into a README, issue or wiki page, or save a .md file for later.

Examples

Example 1 — README sample logs. Convert a JSONL output sample into a tidy table for your project’s README in seconds, so new contributors can see the exact shape of the log data without running the app.

Example 2 — Issue reports. Paste a failing request’s key=value log into a GitHub issue as a readable Markdown table for maintainers, instead of a wall of unformatted text.

Example 3 — Wiki dashboards. Turn a CSV export from a monitoring tool into a CommonMark table that renders identically in GitHub, GitLab, Confluence-via-Markdown or any Markdown wiki.

Example 4 — Status summaries. Show HTTP status codes and latencies from an access log as a compact, right-aligned table so the numeric columns line up visually for quick scanning.

Example 5 — API documentation. Embed a capped sample of real log output as a table in your API docs so readers see the actual field names and value shapes at a glance, not a hypothetical example.

Benefits

  • Instant tables: no manual column alignment or pipe-counting.
  • Portable output: standard Markdown that renders correctly in GitHub, GitLab and most wikis.
  • Format agnostic: JSONL, CSV, key=value and TSV handled in one tool.
  • Escaping handled: pipes and newlines in values never break the layout.
  • Nothing silently dropped: lines that fail to parse are reported, not discarded.
  • Private by design: processed locally, never uploaded.

Frequently Asked Questions

Which log formats are supported?
JSON Lines (one object per line), CSV with comma/semicolon/tab/pipe delimiters, key=value lines, and simple tab-separated columns. Detection is automatic and the source format selector lets you force one.
How are columns chosen?
From the first record by default, using every detected key. You can uncheck the columns you do not want so the table shows exactly the fields that matter.
How is alignment handled?
Left, right or center alignment per column via the colon notation in the separator row (e.g. :---:). Pick one alignment for all columns or leave it as left.
Are special characters escaped?
Pipes inside cell values are escaped as \| so they never break the table, and newlines are shown as a space so each cell stays on one row.
Can I cap the number of rows?
Yes. The row cap option limits how many data rows the table includes — useful for huge logs where you only want a preview.
Is my data uploaded?
No. Conversion happens entirely in your browser; nothing is sent to a server, stored or logged.