Opening logs

The start page

With nothing open, Logsift shows a start page. With logs open, + after the tabs shows it again.

The start page with the ways to begin, and recent files

Button Opens
Open Log… Files, zips, .gz (Ctrl+O)
Open Folder… A folder’s files in a tab (below)
Open Remote… A log on another machine over SSH (Ctrl+Shift+O)
Open URL… A log on a web server (Ctrl+Shift+U)
Attach to a JVM… Threads, profiles, heap of a running Java program (Ctrl+Shift+J); see JVM connections
Open Heap Dump… A .hprof file; see Heap
Open Thread Dump… jstack, jcmd or kill -3 output; see Thread dumps
Open Profile… A JFR recording or saved stacks; see Profiling

Under them, Search in Folder… (Ctrl+Shift+F) searches every log in a folder, zips too: see Folder search. Below that, Recent: Reopen last session and your last files and folders. On macOS the shortcuts use ⌘ instead of Ctrl.

Files

A big file shows its first lines at once and is indexed in the background; the status bar says indexing…, then indexed in N ms. A file on a slow network or cloud drive shows Waiting for the file… with Cancel.

Folders

File → Open Folder… (or the start page’s Open Folder…, dropping a folder on the window, or Open with Logsift on a folder) shows a folder’s files in a tab, as a tree with their sizes: subfolders first, then files. It works like a zip’s tab:

A folder's files as a tree: a subfolder with a .gz and a zip, a CSV, and two logs

Zips and .gz files

Web addresses

File → Open URL… (Ctrl+Shift+U) takes one or more http/https addresses, one per line (lines starting with # are skipped).

WSL (Windows)

File → Open from WSL… opens your Linux home folder. Windows reaches WSL files directly (\\wsl.localhost\Ubuntu\…), so they open and follow like any other file, without SSH. The menu item shows only when WSL is installed.

Command line and piped output

logsift app.log other.log      # open files
logsift --version              # print the version
kubectl logs -f my-pod | logsift -
docker logs -f my-app 2>&1 | logsift -
journalctl -f | logsift -

Piped output is saved to ~/.logsift/stdin/ as it arrives and followed like a growing log. Captures older than a week are removed. Piped input always gets its own window.

On macOS the command is /Applications/Logsift.app/Contents/MacOS/Logsift; on Linux /opt/logsift/bin/Logsift (.deb) or Logsift/bin/Logsift (.tar.gz). Add an alias for convenience.

Logs on a server (SSH/SFTP)

File → Open Remote (SFTP)… (Ctrl+Shift+O).

  1. Server: host, port (22) and user, then a Password or a Private key (~/.ssh/id_ed25519, id_ecdsa or id_rsa is suggested) with its passphrase. Click Connect.
  2. Files: type a folder in the address bar (/var/log, ~/logs, or a name relative to the folder shown) and press Enter, or double-click folders (.. or Backspace goes up). Double-click a file or press Open.
  3. Load: the Last 50 MB (by default) or the Whole file. A whole multi-GB file is a big read of the server’s disk and network; the last few MB are usually enough.

Logsift keeps a local copy up to date while the remote log grows (new lines are fetched every second). It starts over when the file is truncated or rotated, and reconnects by itself if the connection drops: the status bar then shows ⚡ reconnecting… (reason). Every feature works on remote logs.

Host keys are checked against ~/.ssh/known_hosts. For a new server, Logsift shows its key and asks whether to trust it and remember it. If a known server’s key changed, the same question says REMOTE HOST IDENTIFICATION HAS CHANGED: answer No unless you know why it changed (see Troubleshooting).

Logsift remembers the server, user, key and the last folder per server, never passwords.

Encodings

UTF-8, UTF-16 and Windows-1252 are detected by themselves. See The log view.

Export

File → Export saves lines to a new file: Lines Shown by Filters… (Ctrl+Shift+E), Find Results…, Selected Lines… or Everything in the View…. The original bytes are copied (line endings and encoding unchanged), so even large exports take seconds.