lnav v0.13.0 is available!

3 views
Skip to first unread message

lnav support

unread,
Jul 24, 2025, 3:46:56 PMJul 24
to lnav

The latest version of lnav is available here:


There are some non-trivial changes in this release, which is why
I let it bake so long.  Hopefully, I haven't messed things up too
much for folks.

Here's a list of the various changes:

Interface changes:
* The prompt is now a custom implementation instead of readline.
  Some highlights:
  - In the DB prompt: pressing `CTRL+L` will reformat the query and
    switch the prompt to multi-line mode; error locations will be
    highlighted.
  - In multi-line mode, you can click and drag the status bar above
    the prompt to resize the prompt.
  - Pressing `CTRL+O` in the prompt will transfer the prompt to
    contents to Visual Studio Code or the default text editor on
    macOS.
    You can then edit the file and run it from the `|` prompt with:

    ```lnav
    |saved-prompt
    ```
  - When editing a regular expression, like the search prompt or
    for a filter, if the current pattern matches a line in the
    view, the following word will be suggested.
    For example, if the view has the text "foo bar baz" and you
    type "foo ", the prompt will suggest "bar" and you can then
    press `TAB` to complete.
  - In the history listing, an icon indicates if the command or
    query succeeded or failed.
  - Mouse input works as expected: left-click positions the cursor
    in a given location, and a click-drag will select text.
    A right-click will copy the selected text to the system
    clipboard.
* Pressing `F1` in the prompt will show the help text for the
  prompt itself.
  The size of the prompt panel is expanded for readability.
* When reading from stdin, the files used to store the content
  will be rotated when they cross the `/tuning/piper/max-size`
  threshold.
  Previously, the name of the file in the TEXT view would just
  be "stdin", but now it includes the rotation number.
* The LOG and TEXT views will now display a message if they
  contain no content to make it clear to the user that they
  need to switch views or `:open` a file.
* The HIST view now supports bookmarks, so you can use the usual
  hotkeys to move to the next/previous time segment with
  errors/warnings/marks.
* In table cells, control characters are replaced with Unicode
  symbols and highlighted with the 'hidden' style from the theme.
* The `Shift` + `B` hotkey will now jump to the start of a log
  message in the LOG view if the currently focused line is in the
  middle of a multi-line log message.
* When the `:hide-unmarked-lines` command is used in the LOG
  view, if any line in a message is marked, the entire message
  will be shown.

Features:
* The `:comment` command will now switch the prompt to multi-line
  mode and does syntax highlighting for Markdown directives in the
  comment.
  The rendered Markdown will also now be shown in the preview panel.
* lnav code blocks in Markdown content now have a play button (▶)
  next to commands that you can click on to run the command.
* Scrolling right in the LOG view when at the start of a message
  can hide the timestamp/level fields in the message and insert a
  shorter timestamp column on the left side.
  The column should take less space than the existing field and
  aligns all timestamps across all log formats.
  This feature is gated by the `/ui/views/log/time-column`
  setting, with the following values:
  - `disabled`: scrolling right works as normal and does not insert
    the time column.
  - `enabled`: scrolling right enables the time column.
  - `default`: the time column is enabled and the default on startup.
* Added a `fuzzy_match()` SQL function that compares a pattern to
  a string and returns a score.
  The algorithm used is the same as in lnav itself.
* Added a `match_rowid` column to search tables to make it easier
  to join multiple search tables together.
  For example, when multiple log messages occur together in the
  same sequence.
  You can create search tables for each line and then join them
  to query over the whole group of messages.
* Added a `:write-debug-log-to` command that can be used to write
  lnav's internal debug log to a file.
* Added a `:clear-adjusted-log-time` command to clear the time offset
  set by the `:adjust-log-time` command.
* Added a `measure_with_units` SQLite collation function that can
  compare numbers with unit suffixes, like "10KB" or "1.2ms".
  The `:create-search-table` command will also use this collation
  function for capture patterns that are likely to capture a number
  with a unit.
* Log messages now have permalinks that can be used to reference them
  from other locations.
  The permalink for a message is shown in the parser details overlay
  (activated by pressing `p`).
  Selecting the "Permalink:" line in the overlay and then pressing
  `c` will copy the link to your clipboard.
  The link is also available in the `log_line_link` column of the
  log tables.
  These permalinks can be used with the `:goto` command to move to
  the log message.
  They can also be used in log message comments as targets for
  Markdown links, which can be clicked to jump to the message.
* The `CTRL` + `O` shortcut is now bound to the `:prev-location`
  command, so you can jump back to a previous location.
* Render task marks in markdown.
* The demultiplexing feature has been extended to support JSON-lines
  input files.
  For example, an
  can automatically be split into separate streams based on the
  `source` property.
* Added an `lnav_focused_msg` SQL VIEW that returns a single row
  with the columns from the `all_logs` table for the currently
  focused log message.  An `UPDATE` of the mutable columns will
  update the corresponding row in the `all_logs` table.
* Add timestamp format `%9` for nanoseconds from the epoch.
* Added the "modus-operandi" light-colored theme.
* The colors used for highlights and identifiers are now checked
  for high contrast against the current theme's background color.
* Added the "pino_log" format for the Pino Node.js logger.
* Added the "zap_console_log" format for the Go Zap logger.
* Added the "spdlog_log" format for the C++ spdlog logger.

Bug Fixes:
* Should start up in tmux and line drawing should show up now as well.
* The default terminal colors will now be used in the default theme.
  So, a light background with a dark foreground will be respected.
* Improved performance of searches with lots of hits.
* Improved performance for compressed files.
* Improved performance for the timeline view.
* Copying a column with a text value in the DB overlay view.
* Generic logs read from stdin or exec'd were not working properly.
* The `:export-session-to` command will now include `:open` commands
  for log files that were piped in to lnav or executed with the `:sh`
  command.
* The `:set-file-timezone` command was not working correctly in some
  cases.
* The location of views should be restored from the session when filters
  are active.
* Themes have been cleaned up a bit to fix issues with contrast.


Thanks,

Tim

Reply all
Reply to author
Forward
0 new messages