Sha256: db68a8bc8955705ead3188a89db512ddaa76a0ed6f32f801074edce68dc3ec39
Contents?: true
Size: 1.85 KB
Versions: 3
Compression:
Stored size: 1.85 KB
Contents
if defined? Rails require 'mongo_request_logger' require 'rails' module MongoRequestLogger class Railtie < ::Rails::Railtie class << self def setup(app) Mongo::Logger.logger.level = Logger::INFO # Because spammy. logger = MongoRequestLogger.configure(fallback_log: Rails.root.join("log/#{Rails.env}.log")) app.config.logger = logger Rails.logger = logger if defined? ActiveRecord ActiveRecord::Base.logger = logger end if defined? ActionController ActionController::Base.logger = logger end app.config.middleware.insert_after ActionDispatch::DebugExceptions, MongoRequestLogger::Rack unless logger.adapter.is_a?(MongoRequestLogger::Adapters::Mongo) app.config.after_initialize do # Unicorn clears the START_CTX when a worker is forked, so if we have # data in START_CTX then we know we're being preloaded. Unicorn does # not provide application-level hooks for executing code after the # process has forked, so we reconnect lazily. if defined?(Unicorn) && !Unicorn::HttpServer::START_CTX.empty? ::MongoRequestLogger.session.disconnect end # Passenger provides the :starting_worker_process event for executing # code after it has forked, so we use that and reconnect immediately. if ::Mongoid::Config.running_with_passenger? PhusionPassenger.on_event(:starting_worker_process) do |forked| ::MongoRequestLogger.session.disconnect if forked end end end end end end initializer "setup logger" do |app| MongoRequestLogger::Railtie.setup(app) end end end end
Version data entries
3 entries across 3 versions & 1 rubygems