Class: ActiveRecord::LogSubscriber
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: | |
| Instance Chain: | |
| Inherits: | ActiveSupport::LogSubscriber 
 | 
| Defined in: | activerecord/lib/active_record/log_subscriber.rb | 
Constant Summary
- 
    IGNORE_PAYLOAD_NAMES =
    
 # File 'activerecord/lib/active_record/log_subscriber.rb', line 5["SCHEMA", "EXPLAIN"] 
::ActiveSupport::LogSubscriber - Inherited
  BLACK, BLUE, CYAN, GREEN, MAGENTA, MODES, RED, WHITE, YELLOW
Class Attribute Summary
::ActiveSupport::LogSubscriber - Inherited
Class Method Summary
::ActiveSupport::Subscriber - Inherited
| .attach_to | Attach the subscriber to a namespace. | 
| .detach_from | Detach the subscriber from a namespace. | 
| .method_added | Adds event subscribers for all new methods added to the class. | 
| .new, .subscribers, .add_event_subscriber, .remove_event_subscriber | |
Instance Attribute Summary
::ActiveSupport::LogSubscriber - Inherited
Instance Method Summary
Constructor Details
This class inherits a constructor from ActiveSupport::Subscriber
Class Attribute Details
.backtrace_cleaner (rw)
[ GitHub ]# File 'activerecord/lib/active_record/log_subscriber.rb', line 7
class_attribute :backtrace_cleaner, default: ActiveSupport::BacktraceCleaner.new
    .backtrace_cleaner?  ⇒ Boolean  (rw)
  
  [ GitHub ]
# File 'activerecord/lib/active_record/log_subscriber.rb', line 7
class_attribute :backtrace_cleaner, default: ActiveSupport::BacktraceCleaner.new
Instance Attribute Details
#backtrace_cleaner (rw)
[ GitHub ]# File 'activerecord/lib/active_record/log_subscriber.rb', line 7
class_attribute :backtrace_cleaner, default: ActiveSupport::BacktraceCleaner.new
    #backtrace_cleaner?  ⇒ Boolean  (rw)
  
  [ GitHub ]
# File 'activerecord/lib/active_record/log_subscriber.rb', line 7
class_attribute :backtrace_cleaner, default: ActiveSupport::BacktraceCleaner.new
Instance Method Details
#sql(event)
[ GitHub ]# File 'activerecord/lib/active_record/log_subscriber.rb', line 18
def sql(event) payload = event.payload return if IGNORE_PAYLOAD_NAMES.include?(payload[:name]) name = if payload[:async] "ASYNC #{payload[:name]} (#{payload[:lock_wait].round(1)}ms) (db time #{event.duration.round(1)}ms)" else "#{payload[:name]} (#{event.duration.round(1)}ms)" end name = "CACHE #{name}" if payload[:cached] sql = payload[:sql] binds = nil if payload[:binds]&.any? casted_params = type_casted_binds(payload[:type_casted_binds]) binds = [] payload[:binds].each_with_index do |attr, i| attribute_name = if attr.respond_to?(:name) attr.name elsif attr.respond_to?(:[]) && attr[i].respond_to?(:name) attr[i].name else nil end filtered_params = filter(attribute_name, casted_params[i]) binds << render_bind(attr, filtered_params) end binds = binds.inspect binds.prepend(" ") end name = colorize_payload_name(name, payload[:name]) sql = color(sql, sql_color(sql), bold: true) if colorize_logging debug " #{name} #{sql}#{binds}" end
#strict_loading_violation(event)
[ GitHub ]# File 'activerecord/lib/active_record/log_subscriber.rb', line 9
def strict_loading_violation(event) debug do owner = event.payload[:owner] reflection = event.payload[:reflection] color(reflection.(owner), RED) end end