twilight ventures

log lens for vs code

Open VSXVisual Studio Marketplacefree viewer, Pro key bought once

Install from Open VSXInstall from the Visual Studio Marketplacefree to read; the Pro trial runs 14 days on each machine

The log goes on for miles in the editor. Take the rope into VS Code. What stays in memory is the index of offsets, not the miles of text, and a line is read off the disk when you scroll to it.

Log Lens is the third extension we have built for VS Code; JSONL Lens and Parquet Lens came first. It opens a .log file in the editor. The rotated .log.1 to .log.N files of a set open the same way, and so does a .log.gz. Lines are indexed by byte offset in one pass, so a multi-gigabyte log is on screen while its index builds.

ERROR, WARN, INFO, DEBUG and TRACE are read from each line and counted over the whole file. The count is a second pass that begins once the index is complete, and the chips wait for it. A chip per level narrows the grid to that level. The file's first 64 lines decide its format. JSON lines and logfmt are recognized there with nothing to configure, and anything else reads as plain text. The ANSI escape codes a container log carries are stripped from the grid and painted in the line detail.

Reading is free: the grid, the chips, the search box in the grid with regular expressions and the line detail. Pro, bought once, adds whole-file filter queries, export to .log, JSONL or CSV, log statistics and grid themes. It is on from the first open, since each machine gets a 14-day trial with no key to enter.

opens
.log files, rotated .log.N files with a suffix of up to nine digits, and the .gz form of each; a .txt or .out file stays where it was
runs on
VS Code 1.90 and every later release, with no upper bound; the Open VSX build serves VSCodium and the other editors that use that gallery
stores
Open VSX and the Visual Studio Marketplace
newest version
0.1.0, published 2026-09-17 on both stores
pro
the one Lens Pro key that serves JSONL Lens and Parquet Lens for VS Code, bought once through Polar; a 14-day trial on each machine first

free

  • Any size: a line index built in one pass with live progress; browse lines while indexing runs
  • Log levels: ERROR, WARN, INFO, DEBUG and TRACE read from each line and counted over the whole file; a chip per level narrows the grid to that level
  • Formats: JSON lines and logfmt recognized from a sample of the file, plain text otherwise; the level, the time and the message read under all three
  • ANSI: the escape codes in a container or CI log stripped from the grid and painted as colors in the line detail
  • Compressed and rotated: a .log.gz unpacked once to a temp file that goes with the tab; app.log.1 and the rest of a rotated set open like any log
  • Find in file: full-text search or a regular expression tested against each line, a case toggle, next and previous, and matches only to page through the hits alone
  • Go to row: type a line number, Enter, and the grid is there (Ctrl+G for the box)
  • Line detail: the selected line whole, a JSON line pretty-printed, an ANSI line in its colors, copied in one click
  • Statistics tab: the level counts over the whole file and the file's shape; the time span and the activity histogram wait behind the Pro full scan
  • Reads in place: the file is never copied or converted; the index is thrown away when the tab closes
  • Private by construction: no account, no telemetry; the free viewer makes no network calls

pro

  • Whole-file filter queries: level == "ERROR" && message contains "timeout", tested against every line in the file, the parsed fields of a JSON or logfmt line included; the grid becomes the matching set
  • Export: all lines, the lines in view under the level chips and the filter, or the search matches, to .log, JSONL or CSV, with a cancellable progress bar, never over the source file
  • Log statistics: the full scan of the statistics tab: the first and the last timestamp in the file, the span between them and a histogram of lines across it, with the undated lines counted apart
  • Themes: twelve looks for the grid, each tuned for light and dark editors; trying one is free for the window, keeping it is Pro

the key

one Lens Pro key covers Log Lens, JSONL Lens and Parquet Lens for VS Code, but the three do not pass the key between them. paste it into each one you use; Remove license key in that extension releases it again.

The keys are sold through Polar as a personal key or a business key, and the same key serves the other two Lens extensions for VS Code. The price is on the Lens Pro page.

Pasting a key under Enter license key is one call to Polar, and answering Remove license key with Release and remove is the other; Remove only skips it. No call goes out at startup or on a timer, and the trial needs none either, so a filter query works on the file on your disk and stops there. Get Lens Pro hands the checkout to your browser, and Write a review does the same with the store page.

where it stops

what's new

more

Pricing, invoices and licensing questions go to sales@twilightventures.dev; anything else about the product to support@twilightventures.dev.