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.

35 lines
1.1 KiB

1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
1 month ago
  1. module Semantic
  2. # use the Zeitwerk autoloader to reattach_appender for development autoreloading feature
  3. class DevLoader
  4. def initialize
  5. Rails.autoloaders.main.on_load('ApplicationController') do
  6. append_ansi_formatter
  7. append_subscriber_once
  8. end
  9. append_ansi_formatter
  10. # Rails.logger.level = :error
  11. end
  12. private
  13. def append_ansi_formatter
  14. SemanticLogger.clear_appenders!
  15. formatter = Semantic::AnsiFormatter.new
  16. SemanticLogger.add_appender(io: $stdout,
  17. formatter:,
  18. filter: ->(log) { !formatter.reject(log) })
  19. end
  20. def append_subscriber_once
  21. return unless @previous_subscribe.nil?
  22. subscriber = Semantic::LogSubscriber.new('toto1')
  23. @previous_subscribe = ActiveSupport::Notifications.subscribe 'start_processing.action_controller' do |event|
  24. subscriber.start_processing(event)
  25. end
  26. ActiveSupport::Notifications.subscribe 'process_action.action_controller' do |event|
  27. subscriber.finish_processing(event)
  28. end
  29. end
  30. end
  31. end