Skip to content

v0.11.0 — Open and Stream logfmt Logs

Choose a tag to compare

@github-actions github-actions released this 21 Jun 14:50
· 32 commits to main since this release
4b63b6b

Structured Log Viewer can now work with logfmt alongside JSON Lines. The new parser is available everywhere logs enter the app, so the same table, filters, sorting, Find, anchors, Record Details, retention controls, and stream toolbar work with either format.

What’s new

  • Open logfmt files directly. Use File → Open… (Ctrl+O) or drag and drop. Format detection is based on content rather than extension, and a multi-file open may mix JSON Lines and logfmt files in one shared table. The picker now includes *.logfmt, *.log, and *.txt; All Files remains available for other names.
  • Tail logfmt files. Use File → Open Log Stream… (Ctrl+Shift+O) for a file that is still being written. The detected parser is fixed for that live-tail session and receives the same pause, follow, stop, retention, and rotation behavior as JSON Lines.
  • Receive logfmt over the network. Open File → Open Network Stream… (Ctrl+Shift+L) and choose logfmt in the new Format picker. Network data has no file to inspect, so this selection is explicit and is remembered with the session.
  • Reopen sessions with the right parser. The source format is saved in session JSON, avoiding a new prompt or a second detection pass when the session is restored.

Accepted logfmt

Each record is one line of whitespace-separated key=value pairs in the Heroku/kr/logfmt style. Values may be double quoted; quoted text supports \", \\, \n, \r, and \t. Unterminated quoted values are reported as parse errors without stopping valid records from loading.

Bare values are typed: an empty value becomes null, true and false become booleans, decimal integers become signed or unsigned integers, and finite decimal/exponent values become doubles. Other values remain strings. Quoting is an intent signal, so pid="42" stays a string. Repeated keys in one record use the last value. logfmt does not provide nested objects.

The standalone log generator also gains --format json|logfmt, making either shape available for generated files and streams.

Compatibility

  • JSON Lines remains supported across files, live tail, and network streams; logfmt is an additional parser option. No new keyboard shortcuts or unrelated preference keys are introduced.
  • Saved session JSON has an additive schema change: source.format records json or logfmt. Sessions written by v0.10.0 have no format field and therefore default to JSON Lines when loaded. No existing keys are removed or renamed.
  • Existing public loglib parsing entry points remain available. Network TLS remains enabled by default in builds that include it.
  • Packages remain available for Ubuntu 22.04-compatible Linux systems, Windows 10/11, and macOS 12+, with SHA-256 checksums.

Full changelog: v0.10.0...v0.11.0