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, BOLD, CLEAR, CYAN, GREEN, MAGENTA, RED, WHITE, YELLOW
Class Attribute Summary
::ActiveSupport::LogSubscriber
- Inherited
Class Method Summary
::ActiveSupport::LogSubscriber
- Inherited
.flush_all! | Flush all log_subscribers’ logger. |
.log_subscribers |
::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
::ActiveSupport::LogSubscriber
- Inherited
::ActiveSupport::Subscriber
- Inherited
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
.runtime (rw)
[ GitHub ]# File 'activerecord/lib/active_record/log_subscriber.rb', line 13
def self.runtime ActiveRecord::RuntimeRegistry.sql_runtime ||= 0 end
.runtime=(value) (rw)
[ GitHub ]# File 'activerecord/lib/active_record/log_subscriber.rb', line 9
def self.runtime=(value) ActiveRecord::RuntimeRegistry.sql_runtime = value end
Class Method Details
.reset_runtime
[ GitHub ]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 32
def sql(event) self.class.runtime += event.duration return unless logger.debug? payload = event.payload return if IGNORE_PAYLOAD_NAMES.include?(payload[:name]) name = "#{payload[:name]} (#{event.duration.round(1)}ms)" 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| binds << render_bind(attr, casted_params[i]) end binds = binds.inspect binds.prepend(" ") end name = colorize_payload_name(name, payload[:name]) sql = color(sql, sql_color(sql), true) if colorize_logging debug " #{name} #{sql}#{binds}" end
#strict_loading_violation(event)
[ GitHub ]# File 'activerecord/lib/active_record/log_subscriber.rb', line 22
def strict_loading_violation(event) debug do owner = event.payload[:owner] association = event.payload[:reflection].klass name = event.payload[:reflection].name color("Strict loading violation: #{owner} is marked for strict loading. The #{association} association named :#{name} cannot be lazily loaded.", RED) end end