From 1fb58c53fbbca7b71d714b52a526d27fc2cee249 Mon Sep 17 00:00:00 2001 From: Raphael Date: Thu, 25 Nov 2010 19:25:07 -0500 Subject: [PATCH] Monkeypatching to change rails default logging to something more useful --- config/application.rb | 1 + lib/log_overrider.rb | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 lib/log_overrider.rb diff --git a/config/application.rb b/config/application.rb index 6c813a82a..ff901fd5d 100644 --- a/config/application.rb +++ b/config/application.rb @@ -12,6 +12,7 @@ require 'active_resource/railtie' Bundler.require(:default, Rails.env) if defined?(Bundler) require File.expand_path('../../lib/mongo_mapper/bson_id', __FILE__) +require File.expand_path('../../lib/log_overrider', __FILE__) module Diaspora class Application < Rails::Application # Settings in config/environments/* take precedence over those specified here. diff --git a/lib/log_overrider.rb b/lib/log_overrider.rb new file mode 100644 index 000000000..ea6198b90 --- /dev/null +++ b/lib/log_overrider.rb @@ -0,0 +1,32 @@ +class ActionView::LogSubscriber + def render_template(event) + message = "event=render " + message << "template=#{from_rails_root(event.payload[:identifier])} " + message << "layout=#{from_rails_root(event.payload[:layout])} " if event.payload[:layout] + message << "time=#{("%.1fms" % event.duration)}" + info(message) + end + alias :render_partial :render_template + alias :render_collection :render_template +end + +class ActionController::LogSubscriber + def start_processing(event) + payload = event.payload + params = payload[:params].except(*INTERNAL_PARAMS) + log_string = "event=request_routed controller=#{payload[:controller]} action=#{payload[:action]} format=#{payload[:formats].first.to_s.upcase} " + log_string << "params='#{params.inspect}'" unless params.empty? + info(log_string) + end + + def process_action(event) + payload = event.payload + additions = ActionController::Base.log_process_action(payload) + + log_string = "event=request_completed status=#{payload[:status]} " + log_string << "hstatus=#{Rack::Utils::HTTP_STATUS_CODES[payload[:status]]} time=#{"%.0fms" % event.duration} " + log_string << " (#{additions.join(" | ")})" unless additions.blank? + + info(log_string) + end +end