class PhusionPassenger::Rails3Extensions::AnalyticsLogging
def self.install!(options)
def self.install!(options) analytics_logger = options["analytics_logger"] app_group_name = options["app_group_name"] return false if !analytics_logger || !options["analytics"] # If the Ruby interpreter supports GC statistics then turn it on # so that the info can be logged. GC.enable_stats if GC.respond_to?(:enable_stats) subscriber = self.new AnalyticsLogging.attach_to(:action_controller, subscriber) AnalyticsLogging.attach_to(:active_record, subscriber) if defined?(ActiveSupport::Cache::Store) ActiveSupport::Cache::Store.instrument = true AnalyticsLogging.attach_to(:active_support, subscriber) end PhusionPassenger.on_event(:starting_request_handler_thread) do if defined?(ActiveSupport::Cache::Store) # This flag is thread-local. ActiveSupport::Cache::Store.instrument = true end end if defined?(ActionDispatch::DebugExceptions) exceptions_middleware = ActionDispatch::DebugExceptions elsif defined?(ActionDispatch::ShowExceptions) exceptions_middleware = ActionDispatch::ShowExceptions end if exceptions_middleware Rails.application.middleware.insert_after( exceptions_middleware, ExceptionLogger, analytics_logger, app_group_name) end if defined?(ActionController::Base) ActionController::Base.class_eval do include ACExtension end end if defined?(ActiveSupport::Benchmarkable) ActiveSupport::Benchmarkable.class_eval do include ASBenchmarkableExtension alias_method_chain :benchmark, :passenger end end return true end