class

ActiveSupport::LogSubscriber

v3.0.9 - Show latest stable - Superclass: Object

ActiveSupport::LogSubscriber is an object set to consume ActiveSupport::Notifications with solely purpose of logging. The log subscriber dispatches notifications to a regirested object based on its given namespace.

An example would be Active Record log subscriber responsible for logging queries:

module ActiveRecord
  class LogSubscriber < ActiveSupport::LogSubscriber
    def sql(event)
      "#{event.payload[:name]} (#{event.duration}) #{event.payload[:sql]}"
    end
  end
end

And it’s finally registed as:

ActiveRecord::LogSubscriber.attach_to :active_record

Since we need to know all instance methods before attaching the log subscriber, the line above should be called after your ActiveRecord::LogSubscriber definition.

After configured, whenever a “sql.active_record” notification is published, it will properly dispatch the event (ActiveSupport::Notifications::Event) to the sql method.

Log subscriber also has some helpers to deal with logging and automatically flushes all logs when the request finishes (via action_dispatch.callback notification) in a Rails environment.

Constants

BLACK = "\\e[30m"

BLUE = "\\e[34m"

BOLD = "\\e[1m"

CLEAR = "\\e[0m"

CYAN = "\\e[36m"

GREEN = "\\e[32m"

MAGENTA = "\\e[35m"

RED = "\\e[31m"

WHITE = "\\e[37m"

YELLOW = "\\e[33m"

Files

  • activesupport/lib/active_support/log_subscriber.rb
  • activesupport/lib/active_support/log_subscriber/test_helper.rb

Nested classes and modules