CSV is the universal exchange format for log analysis — every BI tool, auditor and analytics export hands you a table. But when you need to send that data back into a log pipeline, replay events into a test harness, or simply read rows in a terminal, a table of columns is not a log. CSV to Log Converter reverses the pipeline: it takes CSV rows and renders each one back into a greppable text line, entirely in your browser.
The parser handles the real-world mess of CSV: comma, semicolon or tab separators, quoted cells with embedded separators, embedded quotes and embedded newlines inside a single cell, and both header and headerless layouts. With a header row, columns are read by name; without one, you flip off the header switch and either let columns default to col1, col2… or type your own comma-separated labels. Rows with ragged column counts (a trailing field missing here and there, common in hand-edited exports) don’t break the parser — missing cells simply come through as empty strings.
You map which columns carry the timestamp, level, category and message using dropdowns that are populated from your actual column names — no need to remember or retype them — and the converter also guesses sensible defaults by checking common names like ts/timestamp/@timestamp, level/severity/lvl, category/logger/service, and message/msg/event. If a column genuinely shouldn’t map to any of the four core fields, choosing (none) in its dropdown excludes it — the converter won’t silently substitute an auto-detected column back in. Any column not mapped to timestamp, level, category or message is appended to the line automatically as key=value, so nothing in the original row is lost even if you only mapped a couple of fields.
Output matches the style you need: classic bracket lines like [2026-08-15 09:12:33] [ERROR] [api] message, plain space-separated lines, flat key=value lines that keep every column visible, or a fully custom template built from {ts}, {level}, {category}, {message} and {fields} placeholders for matching whatever format a downstream tool expects. Levels are normalized against common aliases (warning→warn, err→error, critical/crit→fatal, and so on) and can be uppercased for output; unrecognized values pass through unchanged rather than being dropped. Timestamps can stay exactly as they were in the CSV, or convert to ISO 8601 UTC or a compact YYYY-MM-DD HH:MM:SS form — values that don’t parse as valid dates are left untouched instead of turning into “Invalid Date”.