Module: Logtail::Integrations::Rails

Defined in:
lib/logtail-rails.rb,
lib/logtail-rails/version.rb,
lib/logtail-rails/error_event.rb,
lib/logtail-rails/rack_logger.rb,
lib/logtail-rails/session_context.rb,
lib/logtail-rails/active_support_log_subscriber.rb

Overview

Module for holding all Rails integrations. This module does not extend Integration because it’s dependent on Rack::HTTPEvents. This module simply disables the default HTTP request logging.

Defined Under Namespace

Modules: ActiveSupportLogSubscriber Classes: ErrorEvent, RackLogger, SessionContext

Constant Summary collapse

VERSION =
"0.2.7"

Class Method Summary collapse

Class Method Details

.enabled=(value) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/logtail-rails.rb', line 48

def self.enabled=(value)
  Logtail::Integrations::Rails::ErrorEvent.enabled = value
  Logtail::Integrations::Rack::HTTPContext.enabled = value
  Logtail::Integrations::Rack::HTTPEvents.enabled = value
  Logtail::Integrations::Rack::UserContext.enabled = value
  SessionContext.enabled = value

  ActionController.enabled = value
  ActionView.enabled = value
  ActiveRecord.enabled = value
end

.enabled?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/logtail-rails.rb', line 34

def self.enabled?
  Logtail::Integrations::Rack::HTTPEvents.enabled?
end

.integrate!Object



38
39
40
41
42
43
44
45
46
# File 'lib/logtail-rails.rb', line 38

def self.integrate!
  return false if !enabled?

  ActionController.integrate!
  ActionDispatch.integrate!
  ActionView.integrate!
  ActiveRecord.integrate!
  RackLogger.integrate!
end

.middlewaresObject

All enabled middlewares. The order is relevant. Middlewares that set context are added first so that context is included in subsequent log lines.



62
63
64
65
# File 'lib/logtail-rails.rb', line 62

def self.middlewares
  @middlewares ||= [Logtail::Integrations::Rack::HTTPContext, SessionContext, Logtail::Integrations::Rack::UserContext,
    Logtail::Integrations::Rack::HTTPEvents, Logtail::Integrations::Rails::ErrorEvent].select(&:enabled?)
end