Module: Superlogger

Defined in:
lib/superlogger.rb,
lib/superlogger/logger.rb,
lib/superlogger/railtie.rb,
lib/superlogger/version.rb,
lib/superlogger/middleware.rb,
lib/superlogger/action_view_log_subscriber.rb,
lib/superlogger/active_record_log_subscriber.rb,
lib/superlogger/action_controller_log_subscriber.rb

Defined Under Namespace

Modules: Logger Classes: ActionControllerLogSubscriber, ActionViewLogSubscriber, ActiveRecordLogSubscriber, Middleware, Railtie

Constant Summary collapse

VERSION =
"0.0.2"

Class Method Summary collapse

Class Method Details

.attach_superlogger_log_subscribersObject



47
48
49
50
51
# File 'lib/superlogger.rb', line 47

def attach_superlogger_log_subscribers
  require 'superlogger/action_controller_log_subscriber'
  require 'superlogger/action_view_log_subscriber'
  require 'superlogger/active_record_log_subscriber'
end

.detach_all_existing_log_subscribersObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/superlogger.rb', line 30

def detach_all_existing_log_subscribers
  # force log subscribers to attach first so we can remove them all
  require 'action_controller/log_subscriber'
  require 'active_record/log_subscriber'
  require 'action_view/log_subscriber'
  require 'action_mailer/log_subscriber'

  # remove log subscribers
  ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber|
    subscriber.patterns.each do |pattern|
      ActiveSupport::Notifications.unsubscribe pattern
    end
  end

  ActiveSupport::LogSubscriber.log_subscribers.clear
end

.insert_superlogger_middleware(app) ⇒ Object



23
24
25
26
27
28
# File 'lib/superlogger.rb', line 23

def insert_superlogger_middleware(app)
  require 'superlogger/middleware'

  # important to insert after session middleware so we can get the session id
  app.middleware.use Superlogger::Middleware
end

.overwrite_action_dispatch_debug_exceptionsObject



19
20
21
# File 'lib/superlogger.rb', line 19

def overwrite_action_dispatch_debug_exceptions
  require 'superlogger/action_dispatch_debug_exceptions'
end

.overwrite_rails_rack_loggerObject



15
16
17
# File 'lib/superlogger.rb', line 15

def overwrite_rails_rack_logger
  require 'superlogger/rails_rack_logger'
end

.setup(app) ⇒ Object



7
8
9
10
11
12
13
# File 'lib/superlogger.rb', line 7

def setup(app)
  overwrite_rails_rack_logger
  overwrite_action_dispatch_debug_exceptions
  insert_superlogger_middleware(app)
  detach_all_existing_log_subscribers
  attach_superlogger_log_subscribers
end