Class: Julewire::Rails::Railtie

Inherits:
Rails::Railtie
  • Object
show all
Defined in:
lib/julewire/rails/railtie.rb

Class Method Summary collapse

Class Method Details

.configure_exception_logging(app, settings) ⇒ Object



79
80
81
82
# File 'lib/julewire/rails/railtie.rb', line 79

def configure_exception_logging(app, settings)
  value = log_rescued_responses_value(settings)
  app.config.action_dispatch.log_rescued_responses = value unless value.nil?
end

.finish_initialization!(app) ⇒ Object



51
52
53
54
55
56
57
# File 'lib/julewire/rails/railtie.rb', line 51

def finish_initialization!(app)
  settings = validated_settings(app)
  OutputRequirement.check!(settings)
  LifecycleHooks.install!(settings)
  install_subscribers(settings)
  DebugExceptionLogSilencer.install!(settings)
end

.initialize_exception_logging!(app) ⇒ Object



46
47
48
49
# File 'lib/julewire/rails/railtie.rb', line 46

def initialize_exception_logging!(app)
  settings = validated_settings(app)
  configure_exception_logging(app, settings)
end

.initialize_logger!(app) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'lib/julewire/rails/railtie.rb', line 28

def initialize_logger!(app)
  settings = validated_settings(app)
  return unless settings.logger?

  logger = Logger.new(name: settings.logger_name, source: settings.source)
  logger.level = app.config.log_level
  logger.formatter = app.config.log_formatter
  app.config.logger = ::ActiveSupport::TaggedLogging.new(logger)
  LoggerOutputs.install!
end

.initialize_request_middleware!(app) ⇒ Object



39
40
41
42
43
44
# File 'lib/julewire/rails/railtie.rb', line 39

def initialize_request_middleware!(app)
  settings = validated_settings(app)
  return unless settings.request_middleware?

  install_request_middleware(app, settings, app.config.log_tags)
end

.install_request_middleware(app, settings, log_tags = nil) ⇒ Object



71
72
73
74
75
76
77
# File 'lib/julewire/rails/railtie.rb', line 71

def install_request_middleware(app, settings, log_tags = nil)
  operation = settings.replace_rack_logger? ? :swap : :insert_after
  app.config.middleware.public_send(operation, ::Rails::Rack::Logger, RequestMiddleware, settings, log_tags)
rescue StandardError => e
  IntegrationHealth.record_failure(e, component: :request_middleware, action: :install)
  raise
end

.install_subscribers(settings) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
# File 'lib/julewire/rails/railtie.rb', line 59

def install_subscribers(settings)
  Subscribers::ControllerResponse.install!(settings)
  settings.error_reports? ? Subscribers::Error.install!(settings) : Subscribers::Error.reset!
  Subscribers::RenderedException.install!(settings)
  if settings.structured_events?
    Subscribers::Event.install!(settings)
    LogSubscriberSilencer.silence! if settings.silence_log_subscribers?
  else
    Subscribers::Event.reset!
  end
end

.log_rescued_responses_value(settings) ⇒ Object



84
85
86
87
88
# File 'lib/julewire/rails/railtie.rb', line 84

def log_rescued_responses_value(settings)
  return settings.log_rescued_responses unless settings.log_rescued_responses == :auto

  false if settings.logger? && settings.request_summary?
end