and rounding out rough corners. Full details are below:
Features:
* Log message timestamps are now represented with microsecond
precision internally instead of just millisecond.
* The `log_time` and `log_level` fields can now be hidden.
* The "Op ID:" overlay that is added when the `log_opid` field is
manually set on a message can now be hidden by hiding the
`log_opid` field.
* Pasting a command snippet when the input focus is on the main
view will now execute it.
For this to work: the terminal must support "bracketed-paste"
mode, which most do;
and, the pasted content must also start with one of the sigils
for the desired operation (i.e. `:` for lnav commands, `;` for SQL
queries, `/` for searches, and `|` for scripts).
* Added a `report-access-log` script that generates a report that
utility.
* Added a `find-msg` script that can be used to find the
next/previous message with a field that matches the value of the
field in the focused message.
* Added a `find-chained-msg` script that can be used to find the
next/previous message where a target field matches the value of
the source field in the focused message.
* Scripts can now specify their output format using the
`@output-format:` documentation description.
This setting can affect the output of some commands, like
`:write-table-to` which will output Markdown tables when the
output is set to `text/markdown`.
* Column alignment in Markdown tables is now supported.
* Added ecs_log for the Elastic Common Schema from @ba-didi.
* Added a Proxifier log format.
* Escape sequences for 24-bit color are now handled.
* The `-i` option for installing files will now copy `.lnav`
script files to the `formats/installed` directory.
* Added `italic` and `strike` to the text styling configuration.
* DB query results can now be styled on a row-by-row basis by
adding a column with the name `__lnav_style__`.
* Added `format <format-name> test <path>` management command
to make it easier to test a format against a file.
This can be helpful for determining why a file is not being
recognized by particular format.
* Added a "performance" section to the documentation.
* Session exports now include `:hide-fields` and `:show-fields`
commands from the session.
They are currently commented out by default.
* Added highlighting for Markdown syntax.
Interface changes:
* DB query results that start with a number are right justified
instead of only full numbers.
* Left-clicking a local link in a Markdown document will jump to
that section of the document instead of opening the overlay
menu.
You can still open the overlay menu by right-clicking on the link.
* Rows in a Markdown table are now highlighted with alternating
styles.
* Long-running SQL queries in scripts are now mentioned in the UI
to make it easier to see what is going on.
* Defining a value in a log format with the same name as one of
predefined columns in the log virtual tables will now generate
an error.
* The DB view will now chart result columns that contain a number
with a unit, like "KB", "MB", "GB", etc...
* When switching to the pretty view, the focused line should be
in the same position in the text as in the source view.
* In the LOG view, you can now copy the value of a field by
pressing `c` when focused on a line in the parser details
overlay (activated by pressing `p`).
* In the DB View, if there is a column named `log_level`, it
will be used as the level for the row and the hotkeys for
jumping to the next/previous error/warning will work.
* In the DB View, columns can now be hidden/shown using the
`:hide-fields` / `:show-fields` commands.
* In the DB View, pressing `p` now works for all rows and will
show all columns and not just JSON ones.
You can then press `c` while focused in the overlay to copy
the value of the column.
Pressing space while focused on a column in the overlay will
hide/show it.
* If the terminal supports less than 256 colors, a help message
will be displayed to try setting `TERM` to `xterm-256color`.
* Added `F1` as a hotkey to open the help view.
* Fixed some issues with scrolling in the main view when:
word-wrap was enabled; log messages had tags/comments; or
if the parser details overlay was open.
Breaking changes:
* The `parse_url()` SQL function no longer raises an error for an
invalid URL.
Instead, it will return a JSON object with an object with the
following properties:
- `error` - An identifier for the error.
- `url` - The invalid URL itself.
- `reason` - A description of the error.
Bug Fixes:
* Reduced startup time.
* Reduced indexing time for plain text and JSON-lines logs.
* Reduced memory footprint.
* Improved search performance.
* Reduced DB view CPU and memory usage.
* Reduce time to open help text.
* Improved performance of log virtual tables when ordering the
result by `log_line DESC`.
* Improved performance of the `spooky_hash()` SQL function.
Maintenance:
* Replaced ncurses with notcurses.
* Added arm64 builds for Linux/macOS