ActiveSupport::LogSubscriber is an object set to consume ActiveSupport::Notifications with the sole purpose of logging them. The log subscriber dispatches notifications to a registered 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]}"

And it’s finally registered 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.


WHITE = "\e[37m"

CYAN = "\e[36m"

MAGENTA = "\e[35m"

BLUE = "\e[34m"

YELLOW = "\e[33m"

GREEN = "\e[32m"

RED = "\e[31m"

BLACK = "\e[30m"

BOLD = "\e[1m"

CLEAR = "\e[0m"


[W] logger
Show files where this class is defined (2 files)
Register or log in to add new notes.