Class: AnyLogger::Configuration

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/any_logger/configuration.rb,
lib/any_logger/configuration/event.rb,
lib/any_logger/configuration/log_subscriber.rb

Defined Under Namespace

Classes: Event, LogSubscriber

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



12
13
14
15
16
17
# File 'lib/any_logger/configuration.rb', line 12

def initialize
  @config = {
    logger: ::AnyLogger::Example::RackLogger,
    subscriptions: []
  }
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



10
11
12
# File 'lib/any_logger/configuration.rb', line 10

def config
  @config
end

Instance Method Details

#attachObject



52
53
54
# File 'lib/any_logger/configuration.rb', line 52

def attach(...)
  subscriber.attach(...)
end

#detachObject



48
49
50
# File 'lib/any_logger/configuration.rb', line 48

def detach(...)
  subscriber.detach(...)
end

#eventObject



40
41
42
# File 'lib/any_logger/configuration.rb', line 40

def event
  Event.new
end

#loggerObject



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

def logger
  @config[:logger]
end

#logger=(klass) ⇒ Object



23
24
25
26
# File 'lib/any_logger/configuration.rb', line 23

def logger=(klass)
  Rails.application.config.middleware.swap(logger, klass)
  @config[:logger] = klass
end

#subscriberObject



36
37
38
# File 'lib/any_logger/configuration.rb', line 36

def subscriber
  LogSubscriber.new
end

#subscriptionsObject



32
33
34
# File 'lib/any_logger/configuration.rb', line 32

def subscriptions
  @config[:subscriptions]
end

#swapObject



44
45
46
# File 'lib/any_logger/configuration.rb', line 44

def swap(...)
  subscriber.swap(...)
end

#swap_default_loggerObject



28
29
30
# File 'lib/any_logger/configuration.rb', line 28

def swap_default_logger
  Rails.application.config.middleware.swap(Rails::Rack::Logger, logger)
end