tail -f.
Drag across the bars to zoom into a time range. Click a bar to zoom into that slot.
Use time, level and message; every other named group becomes a column. Lines that do not match are added to the entry above.
Open any log file online, even a 500 MB one, and find what went wrong - the format is detected, entries become a sortable table, and a timeline shows exactly when errors spiked. Just reading plain text? The TXT File Viewer is simpler, and gzipped archives open in the GZ File Opener.
Something went wrong. Please try again.
Still having trouble? Please contact us and we'll be happy to help!
tail -f.
Drag across the bars to zoom into a time range. Click a bar to zoom into that slot.
Use time, level and message; every other named group becomes a column. Lines that do not match are added to the entry above.
Web server, system, Windows, Java, .NET, Python, Node, Android, logfmt and JSON logs are recognised and split into real columns. ANSI colours show up in the Raw view.
Bars stacked by level show when errors started. Drag across them and everything below follows.
Numbers, IDs and IPs are masked so 4,000 copies of one error become one line with a count and first and last seen.
Levels, text or regex, field rules and exclusions stack up with AND, and the counter shows what is left.
Top IPs, paths and user agents, bots, status codes, requests per minute, bandwidth and the slowest endpoints.
Java, Python and .NET exceptions are kept with the line that logged them, so one click shows the full trace.
Open access.log, access.log.1 and access.log.2.gz together as one timeline, or follow a log that is still being written.
Parsing happens in your browser. Logs full of IPs and tokens never touch a server.
The format is detected for each file by test-parsing the first few hundred lines.
If the guess is wrong, pick the right one under Options - or describe your own with a regular expression.
| Family | Formats | Columns you get |
|---|---|---|
| Web servers | Apache and Nginx access logs (combined, common, vhost), Apache and Nginx error logs, IIS W3C, Squid | IP, method, path, status, bytes, response time, referrer, user agent |
| Linux and systems | syslog RFC 3164 and 5424, journalctl short, short-iso and export, journald JSON, glog / klog | Host, app, PID, severity, unit |
| Windows | CBS.log, DISM.log, WindowsUpdate.log, Event Viewer CSV and text exports, PowerShell Export-Csv | Source, event ID, task category, HRESULT |
| Applications | Log4j, Logback, Spring Boot, java.util.logging, Python logging, Serilog, NLog, AWS Lambda, any "timestamp level message" log | Logger, thread, PID, request ID |
| JSON and containers | JSON lines (NDJSON), logfmt (key=value), Docker json-file, Kubernetes CRI, Pino, Bunyan, Serilog CLEF, CloudWatch exports | Every key becomes a column, nested keys flattened, durations like 12ms converted |
| Mobile | Android logcat (threadtime, time, brief) | Tag, PID, TID |
Got a binary Windows .evtx file? Browsers cannot read it directly. In Event Viewer choose Save All Events As, pick CSV or Text, and open that file here.
An access log answers three questions: who visited, what failed and what was slow.
Start with the timeline. A tall red block is an outage, an orange carpet is usually bots hitting missing pages.
ip = 192.0.2.10 and flip it to exclude.Response times appear when your log format includes them, such as Nginx $request_time or Apache %D. Big JSON payloads inside log lines read better in the JSON Viewer.
A .log file is plain text that a program writes to while it runs.
Each line, or group of lines, is an event with a time, a level such as INFO or ERROR, and a message.
There is no single standard, which is why so many formats exist - and why a viewer that understands them saves so much scrolling. Logs are rotated as they grow: app.log becomes app.log.1, then app.log.2.gz.
Browse all file viewers for documents, images and archives.
Drop the .log file onto this page, click to browse, or paste a few log lines. The viewer detects the format, splits every entry into time, level, source and message, and draws a timeline.
It works on Windows, Mac, Linux, Chromebooks and phones with nothing to install.
Apache and Nginx access and error logs, IIS W3C logs, Squid, syslog (RFC 3164 and 5424), journalctl output and exports, Windows CBS, DISM and Windows Update logs, and Event Viewer CSV or text exports.
Also Log4j, Logback, Spring Boot, Python logging, Serilog, NLog, java.util.logging, Android logcat, klog, logfmt (key=value) and JSON lines from Docker, Kubernetes, Pino, Bunyan and CloudWatch.
ANSI colour codes are hidden in the table and shown in colour in the Raw view. Anything else can be parsed with your own regular expression.
Yes. The file is read in slices, parsed in a background worker and only the rows on screen are drawn, so a 500 MB access log with millions of lines shows its first entries within seconds, keeps filling in while it is parsed, and scrolls smoothly.
Filters, search and exports work on the whole file, up to 4 GB per file. In Chrome and Edge, Follow keeps reading a log that is still growing, like tail -f, and adds new lines every 2 seconds.
No. Your browser reads and parses the files on your own device and nothing is sent to a server, which makes the viewer safe for production logs with IP addresses, user names and tokens.
Close the tab and the data is gone.
Yes. Select or drop all the files at once. Gzipped files are unpacked in the browser and every entry is merged into one timeline sorted by time, with a File column that shows where each line came from.
Need to look inside other archives first? Try the GZ File Opener or the TAR Viewer.
Drag across the timeline to keep only that time range, tick or untick the levels, and use Add filter for fields such as status = 5xx, ip = 203.0.113.7 or logger contains Payment.
Every filter can be flipped to exclude, and all of them are combined, so the counter always shows how many entries are left.
Open Options, choose another format, or pick Custom pattern and enter a regular expression with named groups such as (?<time>...), (?<level>...) and (?<message>...).
Any other named group becomes its own column. Lines that do not match are glued to the entry above, which keeps stack traces together.
Yes. Export downloads exactly what the filters show, as the original log lines (TXT), a CSV with one column per field, or JSON.
Report saves the insights as Markdown or plain text, and the ZIP bundle packs the filtered log, the CSV and the report together. The CSV opens nicely in the CSV Viewer.