Module: Lograge::Sql

Defined in:
lib/lograge/sql.rb,
lib/lograge/sql/railtie.rb,
lib/lograge/sql/version.rb,
lib/lograge/sql/extension.rb

Overview

Main gem module

Defined Under Namespace

Modules: Extension Classes: Railtie

Constant Summary collapse

VERSION =

Gem version

'2.6.1'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.extract_eventObject

Extract information from SQL event



13
14
15
# File 'lib/lograge/sql.rb', line 13

def extract_event
  @extract_event
end

.formatterObject

Format SQL log



11
12
13
# File 'lib/lograge/sql.rb', line 11

def formatter
  @formatter
end

.min_duration_msObject

Filter SQL events by duration



15
16
17
# File 'lib/lograge/sql.rb', line 15

def min_duration_ms
  @min_duration_ms
end

.query_filterObject

Filter SQL query



17
18
19
# File 'lib/lograge/sql.rb', line 17

def query_filter
  @query_filter
end

.query_name_denylistObject

Filter wich SQL queries to store



19
20
21
# File 'lib/lograge/sql.rb', line 19

def query_name_denylist
  @query_name_denylist
end

Class Method Details

.setup(config) ⇒ Object

Initialise configuration with fallback to default values



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/lograge/sql.rb', line 22

def setup(config) # rubocop:disable Metrics/AbcSize
  Lograge::Sql.formatter       = config.formatter       || default_formatter
  Lograge::Sql.extract_event   = config.extract_event   || default_extract_event
  Lograge::Sql.min_duration_ms = config.min_duration_ms || 0
  Lograge::Sql.query_filter    = config.query_filter
  Lograge::Sql.query_name_denylist = Regexp.union(config.query_name_denylist || [/\ASCHEMA\z/, /\ASolidCable::/])

  # Disable existing ActiveRecord logging
  unsubscribe_log_subscribers unless config.keep_default_active_record_log

  return unless defined?(Lograge::ActiveRecordLogSubscriber)

  Lograge::ActiveRecordLogSubscriber.attach_to(:active_record)
end

.storeHash, Thread

Gets the store, preferring RequestStore if the gem is found.

Returns:

  • (Hash, Thread)

    the RequestStore or the current Thread.



39
40
41
# File 'lib/lograge/sql.rb', line 39

def store
  defined?(RequestStore) ? RequestStore.store : Thread.current
end