You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
904 B
30 lines
904 B
module Semantic
|
|
# use the Zeitwerk autoloader to reattach_appender for development autoreloading feature
|
|
class DevLoader
|
|
def initialize
|
|
Rails.autoloaders.main.on_load('ApplicationController') do
|
|
append_ansi_formatter
|
|
append_subscriber_once
|
|
end
|
|
append_ansi_formatter
|
|
end
|
|
|
|
private
|
|
|
|
def append_ansi_formatter
|
|
SemanticLogger.clear_appenders!
|
|
formatter = Semantic::AnsiFormatter.new
|
|
SemanticLogger.add_appender(io: $stdout,
|
|
formatter:,
|
|
filter: ->(log) { !formatter.reject(log) })
|
|
end
|
|
|
|
def append_subscriber_once
|
|
return unless @previous_subscribe.nil?
|
|
|
|
@previous_subscribe = ActiveSupport::Notifications.subscribe 'start_processing.action_controller' do |event|
|
|
Semantic::LogSubscriber.new.start_processing(event)
|
|
end
|
|
end
|
|
end
|
|
end
|