Add error tracking and structured logging for production monitoring.
- None
- No error tracking service configured
- Default Rails logging
# Gemfile
gem "sentry-ruby"
gem "sentry-rails"# config/initializers/sentry.rb
Sentry.init do |config|
config.dsn = ENV["SENTRY_DSN"]
config.breadcrumbs_logger = [:active_support_logger, :http_logger]
config.traces_sample_rate = 0.1
config.environment = Rails.env
config.enabled_environments = %w[production staging]
end# Gemfile
gem "lograge"# config/initializers/lograge.rb
Rails.application.configure do
config.lograge.enabled = true
config.lograge.formatter = Lograge::Formatters::Json.new
config.lograge.custom_options = lambda do |event|
{
time: Time.current.iso8601,
host: event.payload[:host],
user_id: event.payload[:user_id],
tenant_id: event.payload[:tenant_id],
request_id: event.payload[:request_id]
}
end
end# app/controllers/application_controller.rb
def append_info_to_payload(payload)
super
payload[:host] = request.host
payload[:user_id] = current_user&.id
payload[:tenant_id] = current_tenant&.id
payload[:request_id] = request.request_id
endFor cloud deployment, configure log forwarding to:
- AWS CloudWatch
- Datadog
- Papertrail
# Gemfile
gem "appsignal"bundle exec appsignal install- Error tracking gem installed and configured
- Errors automatically reported to dashboard
- Lograge produces structured JSON logs
- Custom payload includes user/tenant context
- Logs are parsable by monitoring tools