
Security News
Nx npm Packages Compromised in Supply Chain Attack Weaponizing AI CLI Tools
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
A powerful TUI (Terminal User Interface) for analyzing Rails application logs in real-time. LogBench provides an intuitive interface to view HTTP requests, SQL queries, and performance metrics from your Rails logs.
Add LogBench to your Rails application's Gemfile:
# Gemfile
group :development do
gem 'log_bench'
end
Then run:
bundle install
LogBench is automatically enabled in development environment for backward compatibility. This gem heavily relies on lograge gem for request tracking, we add lograge to your Rails application and configure it automatically, but you can also configure lograge manually if you want.
LogBench works out of the box! Just add the gem and restart your Rails server.
It automatically configures:
No configuration needed in development!
To customize LogBench behavior, create config/initializers/log_bench.rb
:
# config/initializers/log_bench.rb
if defined?(LogBench)
LogBench.setup do |config|
# Enable/disable LogBench (default: true in development, false elsewhere)
config.enabled = Rails.env.development? # or any other condition
# Disable automatic lograge configuration (if you want to configure lograge manually)
# config.configure_lograge_automatically = false # (default: true)
# Customize initialization message
# config.show_init_message = :min # :full, :min, or :none (default: :full)
# Specify which controllers to inject request_id tracking
# config.base_controller_classes = %w[CustomBaseController] # (default: %w[ApplicationController, ActionController::Base])
end
end
If you already have lograge configured or want to manage it manually:
# config/initializers/log_bench.rb
if defined?(LogBench)
LogBench.setup do |config|
# ... other config ...
config.configure_lograge_automatically = false # Don't touch my lograge config!
end
end
# Then configure lograge yourself in config/environments/development.rb or an initializer,
Rails.application.configure do
config.lograge.enabled = true
config.lograge.formatter = Lograge::Formatters::Json.new
config.lograge.custom_options = lambda do |event|
# Your custom lograge configuration
params = event.payload[:params]&.except("controller", "action")
{ params: params } if params.present?
end
end
For more information about lograge configuration, see Lograge's documentation.
View your development logs:
log_bench
# or explicitly for a specific log file
log_bench log/development.log
↑↓
or jk
to navigate requests←→
or hl
to switch between request list and detailsf
to open filter dialogc
to clear an active filter (press escape
or enter
before pressing c
to clear)s
to cycle through sort options (timestamp, duration, status)a
to toggle auto-scroll modeq
to exitPress f
to open the filter dialog.
In the left pane you can filter by:
Examples:
GET
/api/users
500
UsersController
create
abcdef-b1n2mk ...
In the right pane you can filter related log lines by text content to find specific SQL queries or anything else you want to find in the logs.
LogBench works with JSON-formatted logs. Each log entry should include:
Required fields for HTTP requests:
method
: HTTP method (GET, POST, etc.)path
: Request pathstatus
: HTTP status coderequest_id
: Unique request identifierduration
: Request duration in millisecondsOptional fields:
controller
: Controller nameaction
: Action nameallocations
: Memory allocationsview
: View rendering timedb
: Database query timeOther query logs:
message
: SQL query with timing informationrequest_id
: Links query to HTTP requestLogBench includes a comprehensive test suite to ensure reliability and correctness.
# Run all tests
bundle exec rake test
# Run specific test files
bundle exec ruby test/test_log_entry.rb
bundle exec ruby test/test_request.rb
bundle exec ruby test/test_json_formatter.rb
# Run tests with verbose output
bundle exec rake test TESTOPTS="-v"
The test suite covers:
When contributing, please include tests for new features:
# test/test_new_feature.rb
require "test_helper"
class TestNewFeature < Minitest::Test
def test_feature_works
# Your test code here
assert_equal expected, actual
end
end
request_id
Current.request_id
is being set properlya
) for better performance with actively growing log filesgit checkout -b feature/amazing-feature
)git commit -m 'Add amazing feature'
)git push origin feature/amazing-feature
)This gem is available as open source under the terms of the MIT License.
FAQs
Unknown package
We found that log_bench demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.