Sha256: c5fa5baf9f62b17cd2b2ac02e70c219ad7e8da35399236975155947664880f6c
Contents?: true
Size: 1.6 KB
Versions: 2
Compression:
Stored size: 1.6 KB
Contents
require 'active_support/core_ext/class/attribute' require 'active_support/log_subscriber' module Lograge class RequestLogSubscriber < ActiveSupport::LogSubscriber def process_action(event) payload = event.payload message = "#{payload[:method]} #{payload[:path]} format=#{payload[:format]} action=#{payload[:params]['controller']}##{payload[:params]['action']}" message << extract_status(payload) message << runtimes(event) message << location(event) message << custom_options(event) logger.info(message) end def redirect_to(event) Thread.current[:lograge_location] = event.payload[:location] end private def extract_status(payload) if payload[:status] " status=#{payload[:status]}" elsif payload[:exception] exception, message = payload[:exception] " status=500 error='#{exception}:#{message}'" else " status=0" end end def custom_options(event) message = "" (Lograge.custom_options(event) || {}).each do |name, value| message << " #{name}=#{value}" end message end def runtimes(event) message = "" {:duration => event.duration, :view => event.payload[:view_runtime], :db => event.payload[:db_runtime]}.each do |name, runtime| message << " #{name}=%.2f" % runtime if runtime end message end def location(event) if location = Thread.current[:lograge_location] Thread.current[:lograge_location] = nil " location=#{location}" else "" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lograge-0.0.6 | lib/lograge/log_subscriber.rb |
lograge-0.0.5 | lib/lograge/log_subscriber.rb |