Logs · regular expressions

Log files, read into columns.

Describe a line once with a regular expression and every line becomes a row — stack traces kept with their error, nothing dropped without a count.

A regular expression per line, a column per group

A log file has columns — a time, a level, a message — and no separator anybody agreed on. File ▸ Open with a Pattern reads it into a table anyway: a regular expression describes one line, and each capture group becomes a column. A named group brings its name along as the heading.

^(?<time>\S+ \S+)\s+\[(?<level>[A-Z]+)\]\s+(?<logger>\S+) - (?<message>.*)$

A second pattern says which lines count at all — only ERROR|WARN, or everything but DEBUG.

Nothing dropped quietly

Lines the pattern does not describe are counted, and you choose what becomes of them: leave them out, keep them whole in the first column, or add them to the line before — which is what the lines of a stack trace under an error are. The window shows the first two hundred lines as they are beside the table they become, so the pattern is worked out against the real file before anything opens.

Start from a shape that is close

Six patterns come with the app: time-level-message, Apache and Nginx access logs, syslog, whitespace-separated columns, key: value lines, and anything in brackets. A pattern that took work to get right is saved by name and travels in the settings file.

Questions

Common questions

How do I convert an Apache or Nginx access log to CSV?

Open it with File ▸ Open with a Pattern, pick the access-log pattern, and export the table as CSV or Excel.

Open your most difficult file.

Every feature for seven days, fourteen with a free account. No card, and your files never leave your Mac.

Download free trial

macOS 14 Sonoma or later · See pricing