Skip to main content

Command Palette

Search for a command to run...

What's stopping you from reading your Rails logs like this in 2025?

Updated
2 min read
What's stopping you from reading your Rails logs like this in 2025?

I’ve been building a small TUI to read Rails logs less painfully during development. It configures itself to produce and then parse JSON logs in real time, group SQL queries under their HTTP request, and gives you filters, colors, sorting and instant search.

It’s called LogBench and it’s free and open source, feel free to dig into the repo and put a star ⭐️ on it if you like it.

Installation

Add it to your Gemfile, run log_bench, and watch your requests stream in.

group :development do
  gem 'log_bench'
end
bundle install
log_bench

That’s it. No config needed.

If you want to use it in production just don’t put it inside the :development group and force enable it with an initializer:

# in config/initializers/log_bench.rb
if defined?(LogBench)
  LogBench.setup do |config|
    config.enabled = true
  end
end

Preview

More screenshots from Omarchy themes below, and even more here

Tokio Night theme

Features

Here’s the full list of things it does:

  • Real-time log reading with auto-scroll

  • Fast JSON log parsing

  • Split-view for request list and individual request details

  • Syntax highlighting and ANSI color support

  • Nice summary of the queries performed in a request.

  • Performance breakdown per request: duration, allocations, db time, view time

  • Sort by timestamp, duration, or status

  • Advanced filters: method, path, status, controller, action, request id

  • Free-text filter on the right pane to find specific SQL or log lines

  • Copy to clipboard:

    • Left pane: full request summary

    • Right pane: selected SQL with call site

  • Text selection mode to use the mouse for copy

  • Keyboard controls:

    • Navigation: ↑ ↓ or j k

    • Pane switch: ← → or h l

    • Filter dialog: f

    • Clear filter: c

    • Sort: s

    • Auto-scroll toggle: a

    • Copy: y

    • Text selection toggle: t

    • Clear requests in memory: Ctrl+L

    • Undo clear: Ctrl+R

    • Quit: q

  • Background job context:

    • Colored job prefixes like [JobClass#job-id]

    • Works with ActiveJob when using the job logger

    • Works with plain Sidekiq via middleware

    • SQL queries inherit job context