All Tools View Categories About Contact Privacy

Log to CSV Converter

Turn log lines into a clean, spreadsheet-ready CSV table — auto-detected columns, RFC 4180 quoting, download or copy.

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

About Log to CSV Converter

Logs live in text files, but analysis happens in spreadsheets. When you need to pivot, chart or filter a thousand log lines, the fastest route is CSV — every column a field, every row an event. Log to CSV Converter parses any batch of log lines and turns them into a clean, RFC 4180-valid CSV table in one paste, with no schema to define up front.

The parser recognizes the common log dialects: bracket timestamps like [2026-08-15 09:12:33] [ERROR] [api], plain severity prefixes, key=value trails, embedded JSON payloads, JSONL objects and syslog headers. Each line becomes a row with timestamp, level, category and message columns, while every key=value pair becomes its own column — so user_id, ip, status and duration all land in the header automatically, with no regex to write by hand.

Quoting follows RFC 4180 exactly: any cell containing the active column separator, a double quote or a newline is wrapped in quotes with embedded quotes doubled, so the file stays valid no matter which separator you pick. That matters because comma, semicolon and tab each behave differently — a value with a semicolon in it must be quoted when semicolon is the separator, even though it would not need quoting for comma-separated output. The converter checks the separator you have actually selected on every cell, not just for commas, so switching between comma, semicolon and tab never produces a file with silently misaligned columns.

Output is ready for the tool you already use. The header row can be toggled, empty cells can be left blank or filled with a placeholder like - or N/A, and timestamps can be kept as-is or normalized to ISO 8601 UTC so every row sorts correctly regardless of the source format. Download the file or copy it straight into Google Sheets. Lines that cannot be parsed are listed separately rather than silently dropped, so you always know exactly how much of your log made it into the table. Everything runs locally — your logs never leave the page.

Features

  • Auto-detect parsing: bracket, plain, key=value, JSONL and syslog styles recognized per line.
  • Structured columns: timestamp, level, category and message columns from every line.
  • Dynamic field columns: key=value pairs become their own CSV columns automatically.
  • JSON payload flattening: embedded JSON becomes additional columns with dotted names.
  • RFC 4180 quoting: commas, quotes and newlines inside values never break the table.
  • Separator-aware quoting: a value is quoted whenever it contains the separator you actually selected — comma, semicolon or tab — not just a hardcoded comma.
  • Separator choice: comma, semicolon or tab to match your spreadsheet locale.
  • Header toggle: include the header row or emit data only.
  • Empty cell handling: leave blanks or fill with a placeholder value.
  • Timestamp options: keep original or normalize to ISO 8601 UTC.
  • Failed-line reporting: lines that cannot be parsed are listed, not silently dropped.
  • Local processing: everything runs in your browser, nothing uploaded.

How to Use

  1. Paste your logs. Drop any number of log lines into the input box, or click Load sample.
  2. Choose the parser. Auto-detect handles most feeds and inspects JSON braces first; pin Bracket, Plain, Key=value, JSONL or Syslog if a mixed file needs steering.
  3. Set CSV options. Pick the separator, decide on the header row, toggle field extraction and JSON flattening, and set an empty-cell placeholder.
  4. Convert. A correctly quoted CSV table appears with row and byte counts; any unparsed lines are listed in a warning box.
  5. Copy or download. Copy the table, download as .csv, or open it directly in Excel/Sheets.

Examples

Example 1 — Access logs to a pivot. Paste an Apache or Nginx access log and every request becomes a row with timestamp, level, category and message plus any key=value fields — ready to pivot by status or day.

Example 2 — Key=value cleanup for analytics. An app logs user_id=42 plan=pro active=true. Each pair becomes a column, so you can chart plan distribution or count active users in your spreadsheet without regex.

Example 3 — Regional Excel compatibility. Colleagues in some locales expect semicolon-separated CSVs. Switch the separator to semicolon and any field value that happens to contain a semicolon — for example a message like note="a;b" — is correctly quoted so the row still has the right number of columns when it opens.

Example 4 — Flat payloads for BI. Logs carry payload={"region":"eu","tier":3}. The payload is flattened into region and tier columns, so the BI dashboard can group by region directly.

Example 5 — Auditing exports. Generate a headerless CSV for an import tool that expects raw data rows, or a header-included file for human review in Sheets.

Example 6 — Spotting bad lines. A batch job logs one malformed line among ten thousand well-formed ones. The warning box after conversion lists exactly which line numbers failed to parse, so you can go straight to the source instead of scanning the whole file.

Benefits

  • Spreadsheet-ready: every log event becomes one clean, quoted CSV row.
  • No schema work: field columns are derived from your key=value pairs automatically.
  • Locale aware: comma, semicolon or tab output matches your spreadsheet software.
  • Never corrupted: RFC 4180 quoting checks the separator you actually chose, so semicolon and tab output are as safe as comma output.
  • Nothing silently dropped: unparsed lines are reported, not discarded.
  • Fast analysis path: paste logs, get a table, pivot and chart in seconds.
  • Private by design: data is processed locally and never uploaded.

Frequently Asked Questions

How are log lines converted to CSV columns?
Each line is parsed into a row with timestamp, level, category and message columns. Key=value pairs found in the line become their own columns, and embedded JSON payloads are flattened into additional columns. Every cell is quoted per CSV rules so commas inside values never break the table.
Which log formats are supported?
Bracket formats like [2026-08-15 09:12:33] [ERROR] [api] message, plain timestamp LEVEL category lines, key=value lines, JSONL lines and syslog-style lines. Auto-detect chooses the right parser per line, or you can pin one format manually.
Can I change the column separator?
Yes. Use comma for standard CSV, semicolon for locales where Excel expects semicolons, or tab for TSV. The header row can be included or hidden, and empty cells can be filled with a placeholder.
What if lines contain commas, quotes or newlines?
The converter applies RFC 4180 quoting: values containing the separator, a quote or a newline are wrapped in double quotes and embedded quotes are doubled. This keeps the output valid for Excel, Google Sheets and every CSV parser.
How are timestamps handled?
Timestamps found anywhere in the line are kept as-is by default, or normalized to ISO 8601 UTC. Rows without a timestamp get an empty cell instead of a wrong value.
Is my data uploaded?
No. Conversion happens entirely in your browser; nothing is sent to a server, stored or logged.