Repository navigation
v0.16.0 makes complex logs easier to investigate and share. It adds multi-line record parsing, export of the current table view, and portable session bundles.
What's new
Multi-line records
Stack traces, continuation frames, and indented follow-up lines can now be grouped with their original log entry. A Java stack trace, Python traceback, Google glog record, or multi-line logfmt message therefore appears as one row instead of several disconnected lines.
- The complete record is available in the message cell, the Record Details panel, and copied text.
- Eleven built-in regex templates support multi-line records, including Java/Logback, PostgreSQL, Google glog, Rust
env_logger, Rails, and Uber Zap. - Logfmt groups indented continuation lines by default.
- JSON Lines and CSV remain strictly line-based.
- Custom regex templates can use Indented or Until next header continuation modes under Settings → Regex Templates…. Optional header anchors provide faster header detection and are validated before saving.
Multi-line records work in both static files and live streams, including records that cross internal parsing batches.
Export filtered or selected rows (Ctrl+E)
Use File → Export Filtered Rows… to export the current filtered and sorted view. You can export all visible rows or only the selected rows, in the same order shown in the table.
Available formats:
- JSON Lines (
.jsonl), preserving native value types and precise UTC timestamps - CSV (
.csv), with RFC 4180 quoting and protection against spreadsheet formula injection - Source snapshot (
.log), preserving the original bytes, including multi-line records - Markdown table (
.md)
Exports run in the background and can be cancelled. Files are written through a temporary file and replaced atomically, so a cancelled or failed export does not leave an incomplete destination file.
Portable session bundles (Ctrl+Shift+E)
Use File → Export Session Bundle… to create a portable .slvbundle containing:
- every retained log row;
- columns, filters, and sort order;
- anchors and notes; and
- highlight rules.
Recipients can open the bundle through File → Open…, drag and drop, the command line, Recent Sessions, or session restore. The investigation view is reconstructed, including remapped anchors.
Bundles use a standard checksummed zstd stream. They can also be unpacked outside the application:
zstd -d bundle.slvbundle -o bundle.jsonlThe resulting JSON Lines file can be inspected with jq or other text-processing tools.
Reliability and platform improvements
- Export writers now use exclusive temporary files, durable flushes, and atomic replacement. Error messages identify common causes such as another application holding the destination file open, insufficient permissions, or interference from antivirus and sync software.
- Windows paths containing non-ASCII characters, such as
C:\Users\Jörg\…, now work correctly for exports and decompressed temporary files. - Bundle detection and validation now handle standard zstd layouts more reliably. Malformed or unsupported bundles produce specific, actionable errors.
- Bundle configuration is applied only to the matching empty session, preventing queued opens from applying the wrong configuration.
- Anchor lookup scales with the number of anchors rather than the number of rows. Ambiguous matches are discarded instead of being attached to the wrong row.
- The glaze dependency was updated from v7.9.1 to v8.0.0, simdjson from v4.6.5 to v4.6.6, and several GitHub Actions dependencies received patch updates.
- The Python-traceback header-anchor benchmark now uses the same best-of-N sampling method as the other hard performance gates, reducing failures caused by host scheduling noise.
Developer notes
- Multi-line handling is shared by the static and streaming parser pipelines. Parsers that do not support continuations retain their existing single-line path.
- The row-export API is Qt-independent and can be reused by the planned headless
slvCLI. loglibadds public APIs for continuation modes, multi-line record registration, session-bundle writing and reading, cancellation, and bundle validation. ExistingLogParser,ParseFile, and streaming-pipeline APIs remain compatible.- This release adds no new bundled runtime dependencies.
Compatibility
- Existing template and session JSON files continue to load in v0.16.0. New
continuationMode,headerAnchor, andmultilineLogfmtsettings use safe defaults when absent. - If a configuration saved by v0.16.0 is opened and resaved in v0.15, v0.15 discards the new multi-line template settings and reverts those templates to single-line behaviour. Other session state remains intact.
.slvbundleis a new v0.16.0 format. For handoff to v0.15, unpack the bundle with zstd and open the resulting.jsonlfile.- Logfmt now groups indented continuation lines by default. Set
multilineLogfmt = falsein the source dialog's advanced parser options to restore one-row-per-line behaviour. - New shortcuts:
Ctrl+Eexports filtered rows, andCtrl+Shift+Eexports a session bundle.
Full changelog: v0.15.0...v0.16.0