Module: LogBrew::Rails

Defined in:
lib/logbrew/rails.rb,
lib/logbrew/rails_integration.rb

Overview

Process-safe Rails integration installed by RailsRailtie.

Defined Under Namespace

Classes: Configuration, ErrorReporter, RequestMiddleware, Runtime

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.runtimeObject (readonly)

Returns the value of attribute runtime.



11
12
13
# File 'lib/logbrew/rails.rb', line 11

def runtime
  @runtime
end

Class Method Details

.clientObject



33
34
35
# File 'lib/logbrew/rails.rb', line 33

def client
  @runtime&.client
end

.delivery_healthObject



37
38
39
# File 'lib/logbrew/rails.rb', line 37

def delivery_health
  @runtime&.delivery_health
end

.install(application:, environment: ENV) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/logbrew/rails.rb', line 13

def install(application:, environment: ENV)
  @installation_mutex ||= Mutex.new
  @installation_mutex.synchronize do
    return @runtime unless @runtime.nil?

    configuration = Configuration.from_environment(
      environment,
      application_name: application_name(application),
      rails_environment: ::Rails.env.to_s,
      rails_version: ::Rails.version.to_s
    )
    @runtime = Runtime.new(
      configuration,
      on_error: ->(stage, error) { log_capture_failure(application, stage, error) }
    )
    register_shutdown
    @runtime
  end
end

.shutdownObject



41
42
43
# File 'lib/logbrew/rails.rb', line 41

def shutdown
  @runtime&.shutdown
end