Sha256: 947ea004503d937077a27e670aee6d6b3bfd9510a186045e30ba4a748d604939
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
# frozen_string_literal: true require 'lograge/sql/version' # Main Lograge module module Lograge # Main gem module module Sql class << self # Format SQL log attr_accessor :formatter # Extract information from SQL event attr_accessor :extract_event # Initialise configuration with fallback to default values def setup(config) Lograge::Sql.formatter = config.formatter || default_formatter Lograge::Sql.extract_event = config.extract_event || default_extract_event return if config.keep_default_active_record_log # Disable existing ActiveRecord logging ActiveSupport::LogSubscriber.log_subscribers.each do |subscriber| Lograge.unsubscribe(:active_record, subscriber) if subscriber.is_a?(ActiveRecord::LogSubscriber) end Lograge::ActiveRecordLogSubscriber.attach_to :active_record end # Gets the store, preferring RequestStore if the gem is found. # @return [Hash, Thread] the RequestStore or the current Thread. def store defined?(RequestStore) ? RequestStore.store : Thread.current end private # By default, the output is a concatenated string of all extracted events def default_formatter proc do |sql_queries| %('#{sql_queries.join("\n")}') end end # By default, only extract values required for the default_formatter and # already convert to a string def default_extract_event proc do |event| "#{event.payload[:name]} (#{event.duration.to_f.round(2)}) #{event.payload[:sql]}" end end end end end # Rails specific configuration require 'lograge/sql/railtie' if defined?(Rails)
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lograge-sql-1.3.0 | lib/lograge/sql.rb |