The log view

Logsift with four filters combined, the timeline on top and the highlight bar on the right

From top to bottom, a log tab has:

Level colours

Lines are coloured by their level word. The first rule that matches wins:

Lines with Light mode Dark mode
ERROR, FATAL, SEVERE, CRITICAL dark red text on pink pink text on dark red
WARN, WARNING brown text on pale yellow yellow text on dark olive
Stack trace lines (at …, Caused by:, ... 5 more, SomeException: …) red text light red text
DEBUG, TRACE gray text gray text
INFO and others normal text normal text

In the plain view, only these words in capitals colour a line. A filter with a colour (see Filters) replaces the level colour on the lines it matches.

In the Columns view the row keeps these colours, and the Level cell is coloured too: red for errors, dark amber for warnings, gray for debug and trace. There, more spellings count: E, ERR, FTL, W, WRN, I, INF, D, DBG, T, TRC, NOTICE, FINE, FINER, FINEST and so on.

Grayed lines ( light gray, in dark mode) are lines your filters leave out, in All lines mode, and context lines around matches. They keep their place so you can see what is around a match.

Line numbers and marks

Selecting and copying

Drag to select. Double-click selects a word; triple-click, or a click on the line number, the whole line. Shift+click extends. Ctrl+C copies (with nothing selected, the current line). Ctrl+A selects all.

Right-click a line for: Copy, Bookmark This Line, Follow its request ID, Open … in Editor (on a stack line), Show Thread “…” in Threads, Show Only Lines of Thread “…”, Open the Heap Dump (on an out-of-memory line); with text selected, Find All, Show / Hide / Mark lines with “…”. In the Columns view, right-click a value for Show Only Rows Where Host = web-1 and Hide Rows Where Host = web-1 (see Filters on a column).

The highlight bar

A narrow bar beside the scrollbar shows the whole file at a glance, in two lanes:

Click a mark to jump to its line; hover to see it. F8 / Shift+F8 go to the next or previous error. Only lines the view shows get marks.

The log’s bar

Left: Find (Ctrl+F), Filters (opens the Filters tab), Clear All (lit while anything is set: back to the whole log), the chips (see Filters) and Matching only.

Right: the count (1,234 of 50,000 lines), then:

Button Does
Format: …▾ How the lines are read, for example Format: CSV ▾ or Format: logback / log4j ▾. Click it to choose another format for this file (it is remembered), Plain text, New Format from This Log… or Edit Log Formats…. The same list is in View → Log Format. In a narrow window it shows just the name (CSV ▾); hover it for the whole name
Wrap Wrap long lines (Alt+Z, ⌥Z)
Columns Show lines as columns (Ctrl+Shift+K)
Tree The tree of loggers (Ctrl+Shift+B)
Timeline Show or hide the timeline
Follow Follow the end of the file as it grows, like tail -f (Ctrl+T, or End)
Reload Load what changed in the file (F5). It turns into an amber pill, Reload (+1.23 MB) or Reload (file replaced), when the file changed
▾ Reload Automatically: load changes as they happen. Follow turns it on

These apply to this log, and your last choice becomes the default for the next log you open.

The status bar

Left: the file (or sftp user@host:/path, or the web address), its size, the number of lines and how fast it was indexed. Then, when it applies: • 1.2 MB more on disk: Reload (F5) to see it, • the file was replaced on disk, or the state of a remote connection (⚡ …). A blue button appears when a new version of Logsift is out.

Right: MATCHING ONLY, the line number (Ln 1,234), the current line’s time, FOLLOW, the text encoding, and the memory Logsift uses.

Columns

Columns (View → Columns, Ctrl+Shift+K) shows lines as columns: Time, Level, Thread, Logger, Message, or whatever the format has (host, process, status, …). Stack traces show under the message.

Parsed columns with top messages below

JSON logs

Logs with one JSON object per line are recognized. With Columns on, the usual fields become columns (@timestamp/timestamp/time/ts → Time, level/severity → Level, thread, logger, message/msg) and the rest go together in a Fields column as key=value.

JSON log shown as columns, with a pretty-printed details panel

The Details tab shows the current entry in full (a line with its stack trace), or just the text you selected. Its **Text JSON** switch pretty-prints the JSON in it, also JSON in the middle of a message and JSON written inside strings. JSON colours:
Part Light Dark
Keys (bold) blue light blue
Strings green light green
Numbers purple light purple
true, false, null orange light orange
{ } [ ] , : and text around the JSON gray gray

CSV files

A .csv or .tsv file is read as a table: the header row names the columns, and rows are split by comma, semicolon, tab or |, with quoted fields handled. Columns named like a time, level, thread, logger or message (timestamp, severity, msg…) are used as such: the timeline uses the time column, and levels colour the rows. Other columns appear in the tree beside the log. Other files are read as CSV when they clearly are one, or choose CSV in Format: …▾ in the log’s bar.

A CSV file from inside a zip, shown as columns, with its hosts in the tree

The tree of loggers

Logs with a logger column (or class, component, thread, host…) can show a tree on the left (Tree, Ctrl+Shift+B). com.acme.db.Pool sits under com.acme › db, with line counts.

Bookmarks

Ctrl+F2 (⌘F2) bookmarks the current line, or right-click → Bookmark This Line. F2 / Shift+F2 go to the next or previous one. Bookmarks show as blue dots by the line number and on the highlight bar.

The Bookmarks tab lists them: Line, Time, Note (type a note there) and Text. Double-click to go there; Delete removes one. Bookmarks are remembered per file, and dropped when the file was truncated (the lines would have moved).

Merged logs

A log made with File → Merge Files by Time… starts each line with a label like <node2-app> and a coloured stripe at the far left. See Compare and merge. CSV files merge into one CSV with a Source column instead: see Merge CSV files.

Text encodings

Logsift detects UTF-8 (with or without a byte order mark), UTF-16, and Windows-1252. The status bar shows the encoding. View → Encoding reopens the log in another one (Latin-1, Cyrillic, Shift_JIS, GB18030 and more). The encoding for text that isn’t UTF-8 is set in Settings.

Font and dark mode

Ctrl+= / Ctrl+- change the font size; View → Dark Mode switches the theme. The font itself is in Settings.

Dark mode