DEBUG keyboard

Hands on the keys.

Single letters for what you do all day: E next error, F follow, P freeze, G to the whole log. Every shortcut is an action you can rebind in the app.

INFO default shortcuts

The defaults.

Plain keys act in the log only, not in text fields or dialogs. Change them under Help → Keyboard Shortcuts, Cmd/Ctrl+Shift+K.

KeyAction
Cmd/Ctrl+OOpen a file
Cmd/Ctrl+Shift+OType or paste a path to open (~ works)
Cmd/Ctrl+Shift+LOpen a source: receive syslog over UDP/TCP, a database query (kind „Datenbank“)
Cmd/Ctrl+Shift+HOpen a remote file over SSH/SFTP
Cmd/Ctrl+Shift+MMerge files into one tab, sorted by time
Cmd/Ctrl+Shift+EExport the selection, the view or the file
–Open a workspace (.lcw)
–Save the workspace: files, filter tabs, bookmarks, notes, layout
Cmd/Ctrl+,Settings
Cmd/Ctrl+WClose the tab
Ctrl+TabNext tab
Ctrl+Shift+TabPrevious tab
Cmd/Ctrl+Shift+TThe result of the tab as a new filter tab, to filter further there (T on a filter in the tree)
Cmd/Ctrl+BShow or hide the sidebar
Cmd/Ctrl+Shift+DDashboard of the tab, or back to the log
TColumns or raw lines
DDetail panel with the whole entry (also a double click on a line); in it the arrows scroll the panel
ZShow or hide the timeline above the log
Shift+F10, ContextMenuColumn menu (show, hide, move, resize, reset)
Cmd/Ctrl+Alt+TColour scheme picker (arrows try, Enter keeps, Esc goes back)
End, FGo to the end and follow
SpacePause or resume following
PFreeze: hold or resume reading the file of this tab
HomeGo to the first line
PageUpOne page up
PageDownOne page down
↑With a selection: the previous entry (a stack trace is one), scrolled into view; without: one line up
↓With a selection: the next entry; without: one line down
ENext error (ERROR, FATAL) in the view; the selection stays
Shift+EPrevious error
WNext warning or worse
Shift+WPrevious warning or worse
NNext bookmark
Shift+NPrevious bookmark
Cmd/Ctrl+CCopy the selected lines (marked text copies itself)
EscDrop marked text in the log, then the selection
Shift+↑Extend the selection by one entry upwards (or shrink it)
Shift+↓Extend the selection by one entry downwards (or shrink it)
EnterDetail panel for the selection (stays open when it is)
MBookmark on the selected entry, or off again
Shift+MNote on the selected entry (write, change, delete)
GSelected line in the whole log (filter lifted and kept, the filter tree too), again: back to the filter
IFilter on the marked text (filter tree); also by right click on a line
Shift+IExclude the marked text
>Section from the selected entry (filter tree)
<Section up to the selected entry
Cmd/Ctrl+FSearch
EnterIn the search field: next match
Shift+EnterIn the search field: previous match
EscIn the search field: clear it
Cmd/Ctrl+Shift+KKeyboard shortcuts: view, record, remove, reset (also Help → Keyboard Shortcuts…)
?Keyboard shortcuts as an overview
–Show the AI control history (no default key)
–Disconnect the AI (no default key)
–Hide the tab in front from the AI, or show it again (no default key)

INFO keys of single widgets

Where the focus is.

These are fixed and stay with their widget.

WhereKeyAction
Timeline← → Shift+←/→ Enter + - EscMove the cursor, mark a window, jump to its time, zoom, drop the window
Bars between panes↑ ↓ Home EndHeight of the detail panel, width of the sidebar. Shift for bigger steps, double click for the default
Tree↑ ↓ ← → Enter Space DeleteMove, open and close nodes, activate, remove a filter
Filter treeA Shift+A T N Alt+↑ Alt+↓Add a condition or a group, a filter as a new tab, negate, move among its siblings
Chart of the dashboard← → Home End EnterPick a point, jump to its first line
SQL of a panel, noteCmd/Ctrl+EnterRun the query, save the note
LogClick, Shift+clickSelect an entry, or a range
Overview rulerClickGo to the next marked entry from there, a bookmark, the selection or that place

WARN took 0.13ms

Measured, not promised.

On an Apple Silicon Mac, release build, with a log of 500 MB and 5.1 million lines. The tests that measure this are in the repository.

25msfirst lines
2.2sfully indexed
78MBindex in memory
43µs200 lines at a random position
WhatTime or size
Level filter over all lines15 ms
Full text search over all lines0.7 s
Filter tree with 1 / 5 / 20 text conditions0.8 / 0.8 / 1.0 s
Overview ruler (800 px, 1000 bookmarks)0.3 ms
Next FATAL, none in 5.1 million lines0.13 ms
Timeline with 1000 buckets / position at a time0.6 ms / 0.13 ms
5000 lines with 0 / 4 / 16 extracted fields7.8 / 11.8 / 12.8 ms
Dashboard database: build / size / errors per minute12.8 s / 226 MB / 1.0 s
Read and filter with 1 / 4 / 8 filter tabs open2.2 / 3.6 / 4.6 s
Export of all lines as text / CSV with 5 columns0.55 / 9.8 s
Syslog over UDP without loss100,000 messages/s

At 10,000 lines per second the event loop of the UI was never blocked for more than 8 ms (debug build, end-to-end test).

INFO questions

Good to know.

Is it free?

Yes. Log Commander is open source under the MIT license. Use it at home and at work, read the code, change it.

Where can I download it?

Version 1.0.0 is on the GitHub releases page: a universal .dmg for macOS, an installer or .msi for Windows, .deb or AppImage for Linux. You can also build it from source with Node.js and Rust; the steps are in the README.

Are the packages signed?

Not yet. On macOS open the app with right click, Open. On Windows choose More info, Run anyway in SmartScreen.

What happens with my logs?

They stay on your computer. The app has no account, no telemetry and does not phone home. If you turn on AI control, what the AI reads goes to the provider of your AI app, and you can hide tabs from it.

How large can a file be?

Up to 2³² lines per file. The index takes 16 bytes per line, the text stays on disk. A line is shown up to 128 KB and searched up to 1 MB.

Can it sort by a column?

No. The view stays in file order, because a log is a sequence. To see “the slowest requests”, filter on a field or ask the dashboard with SQL.

Which language is the interface?

German for now, as the pictures on this site show.

$ log-commander /var/log/app.log

Open the log.