Sha256: 70b61c30e5a8fd2fd873ba33f651ebea9f7bc5dd2eb24cbf55ff0c26cd5ea77b

Contents?: true

Size: 1.56 KB

Versions: 7

Compression:

Stored size: 1.56 KB

Contents

require 'logjam_agent'

module LogjamAgent

  module Rack
    autoload :Logger, 'logjam_agent/rack/logger'
  end
  autoload :Middleware, 'logjam_agent/middleware'

  class Railtie < Rails::Railtie

    initializer "initialize_logjam_agent_logger", :before => :initialize_logger do |app|
      Rails.logger ||= app.config.logger ||
        begin
          rails_version = Rails::VERSION::STRING
          paths = app.config.paths
          path = (rails_version < "3.2" ? paths.log.to_a : paths['log']).first.to_s
          logger = LogjamAgent::BufferedLogger.new(path)
          logger.level = ActiveSupport::BufferedLogger.const_get(app.config.log_level.to_s.upcase)
          logger.formatter = LogjamAgent::SyslogLikeFormatter.new
          logger.auto_flushing = false if Rails.env.production? && rails_version < "3.2"
          logger
        rescue StandardError => e
          logger = LogjamAgent::BufferedLogger.new(STDERR)
          logger.level = ActiveSupport::BufferedLogger::WARN
          logger.warn(
                      "Logging Error: Unable to access log file. Please ensure that #{path} exists and is writable. " +
                      "The log level has been raised to WARN and the output directed to STDERR until the problem is fixed."
                      )
          logger
        end
    end

    initializer "logjam_agent", :after => "time_bandits" do |app|
      app.config.middleware.swap("TimeBandits::Rack::Logger", "LogjamAgent::Rack::Logger")
      app.config.middleware.insert_before("LogjamAgent::Rack::Logger", "LogjamAgent::Middleware")
    end

  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
logjam_agent-0.5.2 lib/logjam_agent/railtie.rb
logjam_agent-0.5.1 lib/logjam_agent/railtie.rb
logjam_agent-0.5.0 lib/logjam_agent/railtie.rb
logjam_agent-0.4.5 lib/logjam_agent/railtie.rb
logjam_agent-0.4.4 lib/logjam_agent/railtie.rb
logjam_agent-0.4.3 lib/logjam_agent/railtie.rb
logjam_agent-0.4.2 lib/logjam_agent/railtie.rb