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
- Follow mode: absent; the tab shows the file as it was when it opened, and a close and reopen reads the lines written since
- Jump to source: absent; a stack-trace line is text, with nothing in it linked into a project
- Encoding detection: absent; the file is read as UTF-8, so a log in EUC-KR, Shift_JIS or a Windows code page shows its letters wrong
- Editing: the log is never modified, truncated or rotated
- Remote files: local files only, so no ssh tailing, no aggregation, no shipping
what's new
- 0.1.0published 2026-09-17
first release.
a .log file of any size opens as a grid: lines are indexed by byte offset in one pass, with the progress shown, and read as you scroll, so the file is never loaded into memory.
ERROR, WARN, INFO, DEBUG and TRACE are read from each line and counted over the whole file; a chip per level narrows the grid to that level.
JSON lines and logfmt are recognized from a sample of the file, and a line's level, time and message are read from its keys; any other log reads as plain text, each line its own message, with a time when one sits at the front of the line.
ANSI escape codes are stripped from the grid and painted as colors in the line detail.
a .log.gz is unpacked once to a temp file that goes when the tab closes; the numbered rotations of a set, app.log.1 up to a nine-digit suffix, and their .gz twins open like any log.
find in file takes a substring or a regular expression, with a case toggle, next and previous, and matches only to page through the hits; go to row jumps to a line number.
the line detail shows the selected line whole, a JSON line pretty-printed, an ANSI line in its colors.
the Statistics tab: the format, the line count, the size and the level counts over the whole file.
pro is on from the first open as a 14-day trial on each machine: whole-file filter queries, export to log, jsonl or csv, log statistics and twelve grid themes.
a key from Polar replaces the trial at any time, and one Lens Pro key covers JSONL Lens and Parquet Lens for VS Code as well.
the free viewer makes no network calls.
more
- every format, every product
- reading a multi-gigabyte log in place
- the exports
- the JetBrains edition, with follow mode and jump to source
- Lens Pro for VS Code, the one key
- support
Pricing, invoices and licensing questions go to sales@twilightventures.dev; anything else about the product to support@twilightventures.dev.