Type:
Class
Constants:
CLEAR : "\e[0m"

Embed in a String to clear all previous ANSI sequences.

BOLD : "\e[1m"
BLACK : "\e[30m"

Colors

RED : "\e[31m"
GREEN : "\e[32m"
YELLOW : "\e[33m"
BLUE : "\e[34m"
MAGENTA : "\e[35m"
CYAN : "\e[36m"
WHITE : "\e[37m"

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:

1
2
3
4
5
6
7
module ActiveRecord
  class LogSubscriber < ActiveSupport::LogSubscriber
    def sql(event)
      "#{event.payload[:name]} (#{event.duration}) #{event.payload[:sql]}"
    end
  end
end

And it's finally registered as:

1
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.

setup
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber/ActiveSupport::LogSubscriber::TestHelper

setup() Instance Public methods

2025-01-10 15:47:30
log_subscribers
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber

log_subscribers() Class Public methods

2025-01-10 15:47:30
teardown
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber/ActiveSupport::LogSubscriber::TestHelper

teardown() Instance Public methods

2025-01-10 15:47:30
logger 2
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber

logger() Instance Public methods

2025-01-10 15:47:30
color
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber

color(text, color, bold=false) Instance Protected methods Set color by using

2025-01-10 15:47:30
logger
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber

logger() Class Public methods

2025-01-10 15:47:30
flush
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber/ActiveSupport::LogSubscriber::TestHelper/ActiveSupport::LogSubscriber::TestHelper::MockLogger

flush() Instance Public methods

2025-01-10 15:47:30
flush_all!
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber

flush_all!() Class Public methods Flush all

2025-01-10 15:47:30
finish
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber

finish(name, id, payload) Instance Public methods

2025-01-10 15:47:30
set_logger
  • References/Ruby on Rails/Rails/Classes/ActiveSupport/ActiveSupport::LogSubscriber/ActiveSupport::LogSubscriber::TestHelper

set_logger(logger) Instance Public methods Overwrite if you use another logger

2025-01-10 15:47:30