Class: RailsSemanticLogger::ActiveRecord::LogSubscriber
- Inherits:
-
ActiveSupport::LogSubscriber
- Object
- ActiveSupport::LogSubscriber
- RailsSemanticLogger::ActiveRecord::LogSubscriber
- Defined in:
- lib/rails_semantic_logger/active_record/log_subscriber.rb
Constant Summary collapse
- IGNORE_PAYLOAD_NAMES =
%w[SCHEMA EXPLAIN].freeze
Instance Method Summary collapse
Instance Method Details
#sql(event) ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/rails_semantic_logger/active_record/log_subscriber.rb', line 44 def sql(event) return unless logger.debug? payload = event.payload name = payload[:name] return if IGNORE_PAYLOAD_NAMES.include?(name) log_payload = {sql: payload[:sql]} log_payload[:binds] = bind_values(payload) unless (payload[:binds] || []).empty? log_payload[:allocations] = event.allocations log_payload[:cached] = true if payload[:cached] if payload[:async] log_payload[:async] = true log_payload[:lock_wait] = payload[:lock_wait] if payload[:lock_wait] end log = { message: name, payload: log_payload, duration: event.duration } # Log the location of the query itself. if logger.send(:level_index) >= SemanticLogger.backtrace_level_index log[:backtrace] = SemanticLogger::Utils.strip_backtrace(caller) end logger.debug(log) end |
#strict_loading_violation(event) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/rails_semantic_logger/active_record/log_subscriber.rb', line 28 def strict_loading_violation(event) return unless logger.debug? payload = event.payload owner = payload[:owner] reflection = payload[:reflection] log_payload = {owner: owner.name, association: reflection.name} log_payload[:class] = reflection.klass.name unless reflection.polymorphic? logger.debug( message: reflection.(owner), payload: log_payload ) end |