Skip to content
| Marketplace
Sign in
Visual Studio Code>Visualization>Log Lens: Large and Structured Log ViewerNew to Visual Studio Code? Get it now.
Log Lens: Large and Structured Log Viewer

Log Lens: Large and Structured Log Viewer

twilight ventures

| (0) | Free Trial
Viewer for log files of any size: lines are indexed by byte offset in one pass and read on demand, so a multi-gigabyte log opens at once and is never loaded into memory. ERROR, WARN, INFO, DEBUG and TRACE are detected and counted, with one-click level filters; JSON lines and logfmt are recognized; A
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Log Lens

a viewer for log files of any size. lines are indexed by byte offset in one pass and read on demand, so a multi-gigabyte log is on screen while its index builds and the file is never loaded into memory. the viewer is free: the grid, the level chips with whole-file counts, find in file, the line detail. pro, a one-time purchase, adds whole-file filter queries, export, log statistics and grid themes, and it is on from the first open: each machine gets a 14-day pro trial with no key to enter, and the status bar counts it down from "Pro trial, 14 days left".

Log Lens grid on a large log

Log Lens whole-file search

Log Lens statistics view

Free - the full viewer, for logs of any size

  • 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 with one click.
  • Formats: JSON lines and logfmt are recognized from a sample of the file, with nothing to configure; any other log reads as plain text. the two structured formats give up level, time and message from their keys. plain text is blunter: the whole line is the message, the level is whatever level word the line carries, and a time is read only when the line starts with one, 2026-09-17 14:05:30 or 14:05:30 by itself or a syslog stamp, or carries the bracketed Apache date near its front.
  • ANSI: the escape codes a container or CI log carries are stripped from the grid, so every line reads as text there, and the line detail paints them as colors.
  • Compressed and rotated: a .log.gz is unpacked once to a temp file that is deleted when the tab closes; app.log.1, app.log.2 and the rest of a numbered set, up to nine digits, open like any other log, gzipped or not.
  • Find in file: full-text search across every line, or a regular expression tested against each line on its own; case toggle, next/previous jump, matches only to page through the hits alone. the hit list stops at 10,000 lines, and the counter then carries a plus, 10,000+.
  • 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; copy is one click.
  • Statistics tab: the level counts over the whole file, plus format, line count and size; the time span and the activity histogram wait behind the pro full scan.
  • Reads in place: a plain file is read where it is, not copied or converted; the index is a list of byte offsets kept in memory and thrown away when the tab closes.
  • Private: runs locally. no account, no telemetry. the free viewer makes no network calls; the only network traffic is the one activation call when you paste a key and the one release call when you remove it.

every non-blank line in the file is indexed, at 8 bytes a line, and that index is what a file costs in memory: 800 MB of offsets for a hundred million lines; a blank line, or one of nothing but spaces and tabs, is skipped and never counted. the index is one pass over the file; the level pass is a second, over the head of each line (its first 8 KB at most), and it keeps one byte more per line, so a chip can page through one level's lines with no further pass over the file. the grid asks for lines in pages of 200 as you scroll. the extension runs on VS Code 1.90 or newer. only .log names are claimed, plain, rotated (app.log.1 up to a nine-digit suffix) or gzipped, and a .txt or .out file is not; the text editor stays the tab that opens first: Log Lens is the Open With choice and the Open in Log Lens command. the status bar item shows only while a Log Lens tab is active; the pro dialog appears only when you click a pro item, and what speaks unasked is the three trial notices and the one review ask below.

Pro, optional one-time purchase

  • 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 cancelable progress bar and 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 that span in twelve parts, with the lines that carry no timestamp counted apart.
  • Themes: twelve looks for the grid: default, hacker, cyberpunk, goblincore, neon, nosferatu, halloween, blue lagoon, duskhollow, abyss, obsidian and moonlit garden, each tuned for light and dark editors. run Log Lens: Pick theme to try one; trying is free for the window, keeping it is pro. the default look never changes.

the trial has three notices, each shown only when a Log Lens tab is in front. one comes inside the last seven days, with the days left in it, and another on the final day; those two stay out of a session in which the review ask has already spoken, and never both show in one session. a third comes once the trial has ended. it reads "Your Lens Pro trial has ended. Get Lens Pro to keep filter queries, export, log statistics and themes.", and after it the free viewer stays as it was. a machine sees each of the three once, and a key entered stops all of them. all three carry the Get Lens Pro button, which opens the same checkout the status bar item does. one review ask comes per machine, for a review on the store you installed from, and only after five moments of use, counted from three kinds: a file indexed with lines in it, a first search that found some, an export that wrote lines. no reward is attached. it holds off inside the trial's last three days and in a session a trial notice spoke in, and Later closes it for good. every pro dialog names the feature, "Filter query is a Lens Pro feature." for the filter box, and offers the same two buttons, Enter license key and Get Pro; the command palette has the pair as Log Lens: Get Lens Pro and Log Lens: Enter license key, and the status bar item opens a menu with both.

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.

$49 personal, $99 business, one-time, includes 12 months of updates: the key unlocks Pro in every build released within a year of the purchase and keeps working in those builds; a build released after that runs free until a new key. 14-day refund. a personal key activates on up to 3 machines, a business key on 10, every Lens extension on each; release a machine any time from the Polar customer portal.

buy on Polar (personal, business), then run Log Lens: Enter license key.

the free viewer is the complete viewer. everything that is free in 0.1.0 stays free in every later build; pro adds the four items above and nothing is taken away.

What it does not do

  • Follow mode: absent. the tab shows the file as it was when it opened; close and reopen it to read the lines written since.
  • Jump to source: a stack-trace line is text here, and nothing in it links 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: the file has to sit on the machine the extension runs on; under Remote-SSH that is the remote host, so a log there opens fine. nothing is tailed or sent anywhere beyond the editor.

Part of the Lens family

  • JSONL Lens for VS Code: the same grid and find for JSON Lines files; a jsonl export from here opens in it.
  • Parquet Lens for VS Code: the same grid, find and a schema view for Parquet, Avro, TFRecord, Arrow and Feather files.
  • On JetBrains IDEs: Log Lens, with follow mode and jump to source, JSONL Lens and Parquet Lens - one engine, a shared filter grammar, exports that open in each other.

Guides and support

the guides and the family overview are at twilightventures.dev. write to support@twilightventures.dev about anything to do with Log Lens or a purchase, suggestions included; for a bug, name the version and the rough size of the file. bugs and requests can also go on the issues page of the Lens repository.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft