Open Large Log Files in the Browser

Multi-gigabyte logs crash editors and make grep slow. Learn how to open large log files in the browser with streaming, virtual scroll, and instant filtering. No upload.

ZERO UPLOAD · ALL LOCAL
  1. Drop a .log or .jsonl file onto the drop zone, or click to browse. Files up to 500 MB and beyond are supported.
  2. The tool indexes the file locally using a Web Worker and IndexedDB. A progress bar shows lines indexed and estimated time remaining.
  3. Use the search box and level pills (ALL / ERROR / WARN / INFO / DEBUG) to filter the log viewer.
  4. Drag on the time-series chart to narrow results to a specific time window. Click outside the selection to clear it.
  5. Use the Filter button in the Patterns panel to filter the log viewer to lines matching that template. Click Clear to remove the filter.

What to look for

  • 1 MB
  • 500 MB and beyond
  • browser IndexedDB quota (several GB on desktop)

Drop a log or JSONL file here

or click to browse — processed entirely in your browser

JSONL ISO LOG CLF / NGINX
Indexing…
Search
Log level
Log volume over time
TOP PATTERNS

How to Open Large Log Files Without Crashing Your Editor

Big log files break the tools you reach for first. Open a two-gigabyte log in a text editor and it either refuses or freezes while it tries to load the whole thing into memory.1 Reach for grep and it works, but scanning a multi-gigabyte file line by line takes real time, and every new query pays the cost again.2 Tail and less handle streaming but give you no way to filter by level, chart a spike, or see which message repeats.

Big Log Explorer takes a different approach that fits the browser you already have open. It streams the file in 1 MB chunks through a Web Worker, indexes each line into IndexedDB, and shows only the rows currently on screen. Consequently, the file size that matters is your disk and browser quota, not your RAM, and a log that crashes an editor opens and stays responsive.

Why editors and grep struggle

The trouble with large logs comes down to how a tool holds the data. A text editor loads the entire file into memory so it can render, search, and scroll it, which means a file larger than the memory the browser or app will hand over simply cannot open. That is the wall you hit around a few hundred megabytes in most editors.

Loading everything versus loading what you see

Big Log Explorer never holds the whole file in memory. A Web Worker reads the file in 1 MB chunks, parses each line, and writes the parsed records to IndexedDB, a database that lives on disk rather than in the page heap.3 The viewer then uses virtual scrolling, keeping only the rows currently visible plus a small overscan buffer in the DOM, with a spacer sized to the total line count so the scrollbar stays proportional.4 Consequently, memory use stays roughly flat whether the file is fifty megabytes or five hundred. Grep, by contrast, does not exhaust memory but re-reads the file for every query2, so an interactive session of narrowing and re-narrowing pays the full scan cost each time. The indexed approach pays that cost once, up front, then answers every filter instantly.

Virtual scrolling is the other half of why it stays responsive. The viewer draws only the rows near the current scroll position, so the DOM holds a few hundred elements no matter how many millions of lines the file contains. That keeps the page fluid when you scroll, and it is why searching and filtering feel instant rather than fighting a giant rendered table. The index answers the query; the virtual scroll answers the display.

What you can do once it opens

Opening the file is only the start, and the point is what becomes possible afterward. Once the log is indexed, every interaction runs against the database rather than the raw text, so filtering feels immediate regardless of size. You can switch the level pills to isolate errors, type a term into the search box to match a request ID or a service name, and drag across the time chart to focus on the minutes around a spike. Each of these composes with the others, so an error pill plus a search term plus a time window narrows millions of lines to a handful.

Furthermore, the Patterns panel groups the file by message template, revealing which line dominates without any scrolling. Because all of this happens locally, there is no query latency and no round trip to a server. The experience is closer to a database console than to a text viewer, which is exactly what a large log needs to be useful rather than merely openable.

From open to answer in a few clicks

The indexed model means exploration is cheap, so you try things you would never bother with on a raw file. Jump to the ERROR pill, then refine with a service name, then drag the chart to a spike, each step taking a fraction of a second. Because nothing is re-scanned and nothing leaves the browser, the cost of poking at the data is effectively zero, which is what turns a daunting multi-gigabyte file into something you can actually interrogate.

Handling logs too big even for IndexedDB

There is still an upper bound, and it is worth understanding before you drop a truly enormous file. The limit is your browser IndexedDB quota, which on desktop browsers is typically several gigabytes but is not unlimited.5 A single log that exceeds that quota may fail to index fully, which is a different failure from an editor running out of RAM.

Splitting and streaming

When a file is genuinely too large for one session, the practical move is to narrow it before loading. Command-line tools split a file by line count or size, so you can carve a multi-gigabyte log into pieces that each fit comfortably. You can also pre-filter with grep to extract only the time range or service you care about, then open the smaller result in the tool for interactive analysis. Consequently, the workflow that scales best is coarse filtering on the command line followed by fine, iterative exploration in the browser. Furthermore, because the tool clears its IndexedDB database on tab reload, each piece starts from a clean slate, so you can work through several chunks for opening large logs in the browser without leftovers from a previous one interfering.

When to use this

Reach for this when a log is too big to open comfortably in an editor and too tedious to explore with repeated grep passes. It suits post-incident analysis of a large exported log, auditing an access log that runs to millions of lines, or reading a verbose debug capture. Drop the file straight into Big Log Explorer and watch the indexing progress bar, since that single pass is what makes every filter after it instant, and the interactive filtering pays off quickly over a scrolling text view as long as the file fits your browser quota.

Examples

A 2 GB production log that will not open in your editor

Before
vim app.log   # freezes, then runs out of memory
After
Drop app.log onto Big Log Explorer; it streams in 1 MB chunks and stays responsive

Memory use stays roughly flat because only the visible rows are held in the DOM.

Iterating on a search that grep re-scans each time

Before
grep ERROR huge.log | grep user-service | grep timeout
After
Set the ERROR pill, search user-service, then add timeout, all against the indexed data

Each filter runs instantly because the file is indexed once rather than re-scanned per query.

A file larger than your browser quota

Before
Drop a 12 GB log; indexing may not complete
After
split -b 1G huge.log part_ then open one part at a time

Coarse split on the command line, fine exploration in the browser.

Sources
  1. 1.

    microsoft/vscode, "VS Code crashes when opening large files," github.com, accessed July 2026. https://github.com/microsoft/vscode/issues/310440

  2. 2.

    Stack Overflow, "Performance issue with parsing large log files (~5gb) using awk, grep, sed," stackoverflow.com, 2011. https://stackoverflow.com/questions/7197500/performance-issue-with-parsing-large-log-files-5gb-using-awk-grep-sed

  3. 3.

    MDN, "Web Workers API," developer.mozilla.org, accessed July 2026. https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API

  4. 4.

    CSS-Tricks, "Rendering Lists Using React Virtualized," css-tricks.com, accessed July 2026. https://css-tricks.com/rendering-lists-using-react-virtualized/

  5. 5.

    MDN, "Storage quotas and eviction criteria," developer.mozilla.org, accessed July 2026. https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria

FAQ