lnav v0.6.0 released!

It's been four months since the last release of lnav  and a lot of changes have been made in the mean time.  The most exciting change, for me, is the addition of a generic log parser that will try to automatically extract data from log messages.  For example, lnav can parse the following sudo syslog message and pull out the key/value pairs for TTY, PWD, USER, and COMMAND:

Jun  3 07:00:23 Example-iMac.local sudo[2326]:    ghost : TTY=ttys002 ; PWD=/ ; USER=root ; COMMAND=/bin/ls

This requires no intervention from the user and does not require lnav to know about these log messages.  Rather, the parser searches for text that looks like "<key>=<value>" or "<key>: <value>" and makes that data available through the SQLite front-end built into lnav.  The parser can even handle some text messages if the data values are easily distinguishable from plain text.  You can read more about the parser at the new online documentation site.

Augmenting the generic log parser is the ability to define your own log formats and the addition of a few more built-in formats.  The log formats are now defined in JSON configuration files so it's much easier to add support.  The configuration files contain the regular expressions used to parse the log messages as well as the metadata that describes the values extracted from the log.  If you develop a format for a common log format please send it in for inclusion in future releases.

The user interface has also been cleaned up and should look a bit nicer.  To make learning the hotkeys a bit easier, the bottom right corner will display hints for the hotkeys to use when navigating around.  And, there's a new web site to round out the aesthetic improvements. 


EDIT: I've updated the linux binary download to v0.6.0a to fix an issue with the executable exiting immediately because the terminfo files could not be found.