log lens
JetBrains Marketplaceplugin 33416free viewer, Pro subscription
Install from the JetBrains Marketplacefree to read; the Pro trial runs 30 days
The log goes on for miles, and at night it reads back. Take the rope that pays out as the file grows: what stays in memory is the index of offsets, not the miles of text, and the levels are counted over the whole file before you go in.
Log Lens opens a multi-gigabyte production log in IntelliJ IDEA and the other JetBrains IDEs. We leave the text editor alone, so the log's own tab stays open and writable and the Log Lens tab sits next to it. Lines are indexed by byte offset in the background and read on demand, so the log opens at once; the index of offsets is what stays in memory, not the file. Levels are detected and counted over the whole file, the format is recognized on its own (plain text, JSON lines or logfmt), ANSI escape codes render as colors, and follow mode tails the file as it grows. Pro filters the whole file by level, field, time and text, follows that filter live, charts the levels over time and writes the lines out as .log, JSONL, CSV or Parquet.
- opens
- .log, .out and .err files, rotated .log.N files and each .gz form; a .txt file stays with the text editor
- runs on
- IntelliJ IDEA, PyCharm and every IntelliJ-based IDE from 2024.2 on
- store
- JetBrains Marketplace, plugin 33416
- newest version
- 1.9.12, published 2026-10-17
- pro
- a subscription with its own 30-day trial; the price is quoted below as the store shows it

free
- Any size: a streaming line index, an instant first screen, browse while indexing runs
- Log levels: ERROR, WARN, INFO, DEBUG and TRACE detected, colored and counted over the whole file, with a chip per level
- Format detection: JSON lines, logfmt and plain text, with nothing to configure
- ANSI colors: the escape codes in a container or CI log show as colors and bold, never as garbage
- Follow mode: tail the file as it grows, rotation-safe
- Jump to source: stack-trace lines link straight into your project
- Find in file: full-text search with next and previous jump and a match count
- Compressed logs: .log.gz opens transparently, with the temp space it needs named before the wait
- Timestamps: ISO stamps, dotted day-first dates, year-first dates and Apache access-log stamps all carry their time
- Encodings: EUC-KR, Shift_JIS and the Polish code pages detected on open, with an Encoding selector in the toolbar
- Compare: a log with siblings like app.log.1 opens beside them, read side by side
- Themes: twelve looks for the level and ANSI colors; trying one is free for the open window
pro
- Filtered follow: tail only the errors, or only the lines matching your query, live
- Filter queries: keep only the lines matching level, field, time and text predicates, scanned across the whole file, then browse just the matches
- Export: write the current page, the filtered view, the search matches or the query matches to a new .log, .jsonl, CSV or Parquet file; in Parquet the parsed fields become typed columns and the raw line rides along
- Log statistics: a per-level time histogram over the whole file with span and rate, so the minute the errors clustered is visible
- Kept themes: a chosen look stays set from file to file
price, as the store shows it
The viewer is free and stays free. Pro is a subscription for this plugin: USD 2.90 a month or USD 29 a year for individual use. For organizations it is, per user, USD 5.80 a month or USD 58 a year.
where it stops
- No editing: the log is never modified, truncated or rotated
- Local files only: no ssh tailing, no aggregation, no shipping
- No alerting: the Pro filtered follow shows matching lines live, it does not notify or page
- Text formats only: JSON lines, logfmt and plain text; binary formats are not parsed

what's new
- 1.9.12published 2026-10-17
In a plain-text log, a line without a time stamp that opens with a level word more severe than the stamped line above it counts under its own level again, in the level chips, in follow and in Log Statistics. 1.9.11 counted such a line under the stamped line, so a Go panic printed after a line from Go's log package (a time stamp and no level) counted as OTHER and was missing from the FATAL chip, and a JVM WARNING line or an "ERR!" line from a package manager after an INFO line was missing from WARN and ERROR. A level word further along a line changes nothing: the lines after the panic, an exception message that names FATAL in its text and every stack trace line still count under the stamped line above them.
- 1.9.11published 2026-10-16
The ERROR chip keeps every stack trace under its error: a line that continues a record (an indented frame, a Caused by or Suppressed line, an elision, and in a plain-text log any unstamped line under a stamped one) counts under the level of that record in the chips, in follow and in Log Statistics, while the table still shows each line on its own level. On a 1 GiB Spring Boot console log the chip previously counted 33,259 headlines and no trace; it now counts 1,688,296 lines in 7.3 s against 7.5 s before. The Pro query keeps up to 1,000,000 matches, previously 10,000, and a query that reaches the cap names the line and time where it stopped and offers Continue. On the same log the query for the ERROR level previously kept the first 10,000 headlines in 23.8 s and never reached an incident of 13,705 errors at 02:10; it now keeps all 33,259 ERROR headlines of 4,955,770 lines in 52.9 s. A blocked gzip log with a damaged block trailer is refused with "Decompression failed: Corrupt gzip stream: Corrupt GZIP trailer", previously it opened with that block missing; a .gz cut short is refused with a message that says so; a line opening with a byte order mark is read like any other line, its time shown and counted.
- 1.9.10published 2026-10-14
Selecting a very long line no longer freezes the IDE. The detail pane opens at once with the first 256 KB of the line, the header says how long the whole line is, and "Copy whole line" puts all of it on the clipboard. Reload, or a log file that rotates while you follow it, now forgets a filter query that was still running, so matches from the file as it was no longer show up in the new one. A followed file with a filter query keeps its new matching lines in file order, so none go missing when a level filter is on too. When Log Lens fails, the IDE's error dialog now offers to send a report to JetBrains Marketplace; a report is sent only when you choose to send one from that dialog, and nothing is sent on its own. The "Log Lens Log" file type and icon cover the rotated .log.1 to .log.9 and the .gz form of each, as in 1.9.4; a later generation such as .log.12 still opens on the Log Lens tab.
more
Pricing, invoices and licensing questions go to sales@twilightventures.dev; anything else about the product to support@twilightventures.dev.