Module: LogStruct::Integrations

Extended by:
T::Sig
Defined in:
lib/log_struct/integrations.rb,
lib/log_struct/integrations/ahoy.rb,
lib/log_struct/integrations/puma.rb,
lib/log_struct/integrations/rack.rb,
lib/log_struct/integrations/dotenv.rb,
lib/log_struct/integrations/shrine.rb,
lib/log_struct/integrations/sorbet.rb,
lib/log_struct/integrations/lograge.rb,
lib/log_struct/integrations/sidekiq.rb,
lib/log_struct/integrations/good_job.rb,
lib/log_struct/integrations/active_job.rb,
lib/log_struct/integrations/carrierwave.rb,
lib/log_struct/integrations/action_mailer.rb,
lib/log_struct/integrations/active_record.rb,
lib/log_struct/integrations/active_storage.rb,
lib/log_struct/integrations/sidekiq/logger.rb,
lib/log_struct/integrations/good_job/logger.rb,
lib/log_struct/integrations/host_authorization.rb,
lib/log_struct/integrations/rack_error_handler.rb,
lib/log_struct/integrations/integration_interface.rb,
lib/log_struct/integrations/good_job/log_subscriber.rb,
lib/log_struct/integrations/active_model_serializers.rb,
lib/log_struct/integrations/active_job/log_subscriber.rb,
lib/log_struct/integrations/action_mailer/event_logging.rb,
lib/log_struct/integrations/action_mailer/error_handling.rb,
lib/log_struct/integrations/rack_error_handler/middleware.rb,
lib/log_struct/integrations/action_mailer/metadata_collection.rb

Defined Under Namespace

Modules: ActionMailer, ActiveJob, ActiveModelSerializers, ActiveRecord, ActiveStorage, Ahoy, CarrierWave, Dotenv, GoodJob, HostAuthorization, IntegrationInterface, Lograge, Puma, Rack, RackErrorHandler, Shrine, Sidekiq, Sorbet

Class Method Summary collapse

Class Method Details

.setup_initializers(railtie) ⇒ void

This method returns an undefined value.

Register generic initializers on the Railtie to keep integration wiring centralized (boot replay interception and resolution).

Parameters:

  • railtie (T.untyped)


29
30
31
32
33
34
35
36
37
38
39
# File 'lib/log_struct/integrations.rb', line 29

def self.setup_initializers(railtie)
  # Intercept any boot-time replays (e.g., dotenv) before those railties run
  railtie.initializer "logstruct.intercept_boot_replays", before: "dotenv" do
    LogStruct::Integrations::Dotenv.intercept_logger_setter!
  end

  # Decide which set of boot logs to emit after user initializers
  railtie.initializer "logstruct.resolve_boot_logs", after: :load_config_initializers do
    LogStruct::Integrations::Dotenv.resolve_boot_logs!
  end
end

.setup_integrations(stage: :all) ⇒ void

This method returns an undefined value.

Parameters:

  • stage (Symbol) (defaults to: :all)


42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/log_struct/integrations.rb', line 42

def self.setup_integrations(stage: :all)
  config = LogStruct.config

  case stage
  when :non_middleware
    setup_non_middleware_integrations(config)
  when :middleware
    setup_middleware_integrations(config)
  when :all
    setup_non_middleware_integrations(config)
    setup_middleware_integrations(config)
  else
    raise ArgumentError, "Unknown integration stage: #{stage}"
  end
end