lnav v0.8.5 released!

Check out the release on GitHub.


  • Added a visual filter editor to make it easier to update existing filters. The editor can be opened by pressing TAB. Once the editor is opened, you can create/delete, enable/disable, and edit the patterns with hotkeys.
  • Added an 'lnav_view_filters' SQL table that can be used to programmatically manipulate filters.
  • Added an 'lnav_view_filter_stats' SQL table that contains the number of times a given filter matched a line in the view.
  • Added a 'log_filters' column to log tables that can be used to see what filters matched the log message.
  • A history of locations in a view is now kept so that you can jump back to where you were previously using the '{' and '}' keys. The location history can also be accessed through the ":prev-location" and ":next-location" commands.
  • The ":write-*" commands will now accept "/dev/clipboard" as a file name that writes to the system clipboard.
  • The ":write-to" and ":write-raw-to" commands will now print out comments and tags attached to the lines.
  • Added a ":redirect-to " command to redirect command output to the given file. This command is mostly useful in scripts where one might want to redirect all output from commands like ":echo" and ":write-to -" to a single file.
  • If a log file format has multiple patterns for matching log messages, each pattern is now tried to match a message in a file. Previously, only one pattern was ever used for an entire file.
  • Added haproxy log format from Peter Hoffmann.
  • Added 'spooky_hash()' and 'group_spooky_hash()' SQL functions to generate a hash of their parameters.
  • Added 'time_offset' to the 'lnav_file' table so that the timestamps in a file can be adjusted programmatically.

Interface Changes:

  • The auto-complete behavior in the prompt has been modified to fall back to a fuzzy search if the prefix search finds no matches. For example, typing in ":fin" and pressing TAB would previously not do anything. Now, the ":fin" will be completed to ":filter-in " since that is a strong fuzzy match. If there are multiple matches, as would happen with ":dfil", readline's menu-complete behavior will be engaged and you can press TAB cycle through the options.
  • Added CTRL+F to toggle the enabled/disabled state of all filters for the current view.
  • The '-r' flag is now for recursively loading files. The functionality for loading rotated files is now under the '-R' flag.
  • The current search term is now shown in the bottom status bar.
  • Some initial help text is now shown for the search and SQL prompts to refresh the memory.
  • When entering the ":comment" command for a line with a comment, the command prompt will be filled in with the existing comment to make editing easier.
  • Hidden fields now show up as a unicode vertical ellipsis (⋮) instead of three-dot ellipsis to save space.
  • Pressing 7/8 will now move to the previous/next minute.
  • The ":write-raw-to" command has been changed to write the entire contents of the current view and a ":write-screen-to" command has been added to write only the current screen contents.
  • Disabled filters are now saved in sessions.
  • The ":adjust-log-time" command now accepts relative times as input.


  • The ":write-json-to" command will now pass through JSON cells as their JSON values instead of a JSON-encoded string.