aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_view/railties/log_subscriber.rb
blob: cb2ad0711e37681c06c5978c38a28dae2810663f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
module ActionView
  # = Action View Log Subscriber
  #
  # Provides functionality so that Rails can output logs from Action View.
  module Railties
    class LogSubscriber < Rails::LogSubscriber
      def render_template(event)
        message = "Rendered #{from_rails_root(event.payload[:identifier])}"
        message << " within #{from_rails_root(event.payload[:layout])}" if event.payload[:layout]
        message << (" (%.1fms)" % event.duration)
        info(message)        
      end
      alias :render_partial :render_template
      alias :render_collection :render_template

      def logger
        ActionController::Base.logger
      end

    protected

      def from_rails_root(string)
        string.sub("#{Rails.root}/", "").sub(/^app\/views\//, "")
      end
    end
  end
end