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