VS Code Extensions
U

Unreal Log Analyzer

by TheDxr

Analyze large Unreal Engine .log files with streaming parse, virtual scrolling, category/level filtering and search. Handles multi-GB logs.

Downloads

46

Rating

(0)

Version

1.0.1

Last updated

Jun 16, 2026

Analyze large Unreal Engine .log files directly inside VSCode, with streaming parse, virtual scrolling, category/level filtering and search. Designed to stay responsive on multi-GB logs.

How it works

The heavy lifting runs in the extension host (Node.js), not the webview:

  • Streaming readfs.createReadStream reads the file from disk in 4 MB buffers. The whole file is never held as a single string, so it sidesteps the JS engine's max-string-length limit and handles files far larger than RAM could hold as one string.
  • Streaming incremental parser — lines are parsed chunk-by-chunk with line-boundary buffering and log-category interning. Multi-byte UTF-8 characters that straddle a chunk boundary are decoded correctly.
  • Batched delivery — parsed entries are posted to the webview in batches so the view starts rendering before the file finishes loading.
  • Variable-height virtual scrolling — the webview mounts only the rows that intersect the viewport (prefix-sum offsets + binary search), keeping the live DOM node count in the dozens regardless of total entry count.

Usage

  • Command PaletteUnreal Log: Analyze Log File... and pick a file, or
  • Right-click a .log / .txt file in the Explorer → Unreal Log: Analyze Current File, or
  • Open a log file in the editor and run Unreal Log: Analyze Current File.

In the viewer:

  • Filter by severity (Display / Warning / Error) via the toggles.
  • Filter by category via the Categories ▾ panel.
  • Search with substring or regex (toggle Regex, Case). Ctrl/Cmd+F focuses the search box.
  • Copy filtered copies the currently visible (filtered) entries.
  • Double-click a row to open the raw file at that source line.

Settings

  • unrealLogAnalyzer.chunkLines (default 50000) — entries shipped to the view per batch during loading.

Project layout

unreal-log-analyzer-vscode/
├── package.json          # extension manifest (commands, menus, activation)
├── extension.js          # host: streaming disk read + parse, webview wiring
├── media/
│   ├── viewer.js         # webview: virtual scroll + filter + search
│   └── viewer.css        # webview styling (uses VSCode theme variables)
├── scripts/
│   └── build-vsix.py     # package the extension into a .vsix
├── tests/
│   ├── host-test.js      # host streaming-parse integration test
│   └── utf8-test.js      # UTF-8 chunk-boundary safety test
└── README.md

Build & install

This is the source of truth for the extension. The installed copy lives in ~/.vscode/extensions/ and is produced from here:

# 1. Package into a .vsix (no node/vsce toolchain needed)
python scripts/build-vsix.py

# 2. Install (or upgrade) into VSCode
code --install-extension unreal-log-analyzer-1.0.0.vsix --force

# 3. Reload VSCode: Command Palette -> "Developer: Reload Window"

Note: a hand-placed folder under ~/.vscode/extensions is not reliably auto-discovered by recent VSCode versions. Always install via the .vsix produced above.

Tests

# Host-side streaming parse against a real log file
node tests/host-test.js <path-to-large.log>

# UTF-8 multi-byte chunk-boundary safety (generates its own fixture)
node tests/utf8-test.js

Install (manual fallback)

If you choose to drop this folder directly into ~/.vscode/extensions/, reload VSCode (Developer: Reload Window). The .vsix route above is preferred.

Related extensions