Sha256: ac2d71a8d62095b717e8fb83e1dec18ba9bbb30c50e021ae40855b4fa6924424

Contents?: true

Size: 1.63 KB

Versions: 4

Compression:

Stored size: 1.63 KB

Contents

if (defined? Rails) && Rails.version =~ /^3\./
  require 'mongo_request_logger'
  require 'mongo_request_logger/config'
  require 'mongo_request_logger/rack'
  require 'mongo_request_logger/viewer'

  require 'rails'

  begin
    # We prefer moped ...
    require 'moped'
  rescue LoadError
    # ... but fallback to mongo
    require 'mongo'
  end

  module MongoRequestLogger
    class Railtie < ::Rails::Railtie
      class << self
        def setup(app)

          global_config = MongoRequestLogger::Config.new
          global_config.load_file(File.join(Rails.root, "config/logger.yml"))
          log_config = global_config.namespaced(Rails.env)
          return unless log_config && log_config['database']

          if defined? Moped
            adapter = MongoRequestLogger::Adapters::Moped.new(log_config)
          else
            adapter = MongoRequestLogger::Adapters::Mongo.new(log_config)
          end
          Rails.logger = MongoRequestLogger::Logger.new adapter, Rails.root.join("log/#{Rails.env}.log")

          MongoRequestLogger::Rack.logger = Rails.logger
          MongoRequestLogger::Rack.ignore_prefixes << '/assets'

          MongoRequestLogger::Viewer.adapter = adapter

          app.config.middleware.insert_after ActionDispatch::DebugExceptions, MongoRequestLogger::Rack

          if defined?(PhusionPassenger)
            PhusionPassenger.on_event(:starting_worker_process) do |forked|
              if forked
                adapter.reconnect
              end
            end
          end

        end
      end

      initializer "setup logger" do |app|
        MongoRequestLogger::Railtie.setup(app)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mongo_request_logger-0.2.2 lib/mongo_request_logger/railtie.rb
mongo_request_logger-0.2.1 lib/mongo_request_logger/railtie.rb
mongo_request_logger-0.2.0 lib/mongo_request_logger/railtie.rb
mongo_request_logger-0.1.0 lib/mongo_request_logger/railtie.rb