module Timber::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/timber-rails.rb, line 44
def self.enabled=(value)
  Timber::Integrations::Rails::ErrorEvent.enabled = value
  Timber::Integrations::Rack::HTTPContext.enabled = value
  Timber::Integrations::Rack::HTTPEvents.enabled = value
  Timber::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/timber-rails.rb, line 30
def self.enabled?
  Timber::Integrations::Rack::HTTPEvents.enabled?
end
integrate!() click to toggle source
# File lib/timber-rails.rb, line 34
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/timber-rails.rb, line 58
def self.middlewares
  @middlewares ||= [Timber::Integrations::Rack::HTTPContext, SessionContext, Timber::Integrations::Rack::UserContext,
    Timber::Integrations::Rack::HTTPEvents, Timber::Integrations::Rails::ErrorEvent].select(&:enabled?)
end