module Logtail::Integrations::Rails

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.

Constants

VERSION

Public Class Methods

enabled=(value) click to toggle source
# File lib/logtail-rails.rb, line 43
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?() click to toggle source
# File lib/logtail-rails.rb, line 29
def self.enabled?
  Logtail::Integrations::Rack::HTTPEvents.enabled?
end
integrate!() click to toggle source
# File lib/logtail-rails.rb, line 33
def self.integrate!
  return false if !enabled?

  ActionController.integrate!
  ActionDispatch.integrate!
  ActionView.integrate!
  ActiveRecord.integrate!
  RackLogger.integrate!
end
middlewares() click to toggle source

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

# File lib/logtail-rails.rb, line 57
def self.middlewares
  @middlewares ||= [Logtail::Integrations::Rack::HTTPContext, SessionContext, Logtail::Integrations::Rack::UserContext,
    Logtail::Integrations::Rack::HTTPEvents, Logtail::Integrations::Rails::ErrorEvent].select(&:enabled?)
end