class HubriseInitializer

Constants

VERSION

Public Class Methods

configure(*initializers) click to toggle source
# File lib/hubrise_initializer.rb, line 9
def configure(*initializers)
  initializers.each do |initializer|
    case initializer
    when :logger
      configure_logger
    when :delayed_job_logger
      configure_delayed_job_logger
    when :web_console
      configure_web_console
    end
  end
end

Private Class Methods

configure_delayed_job_logger() click to toggle source
# File lib/hubrise_initializer.rb, line 60
def configure_delayed_job_logger
  Rails.application.configure do
    case ENV['RAILS_LOGGER']
    when 'stdout'
      # Log to STDOUT (docker-compose)
      Delayed::Worker.logger = ActiveSupport::Logger.new(STDOUT)

    when 'fluentd'
      # Log to fluentd (kubernetes)
      # ENV['FLUENTD_URL'] is used internally by this logger
      Delayed::Worker.logger = ActFluentLoggerRails::Logger.new

    else
      # Log to a file
      Delayed::Worker.logger = ActiveSupport::Logger.new(File.join(Rails.root, 'log', 'delayed_job.log'))
    end
  end
end
configure_logger() click to toggle source
# File lib/hubrise_initializer.rb, line 24
def configure_logger
  Rails.application.configure do
    config.lograge.base_controller_class = %w[ActionController::API ActionController::Base]

    if log_level = ENV['RAILS_LOG_LEVEL']
      config.log_level = log_level
    end

    case ENV['RAILS_LOGGER']
    when 'stdout'
      # Log to STDOUT (docker-compose)
      config.logger = ActiveSupport::Logger.new(STDOUT)

    when 'fluentd'
      # Log to fluentd (kubernetes)
      # ENV['FLUENTD_URL'] is used internally by this logger
      config.logger = ActFluentLoggerRails::Logger.new

      config.lograge.enabled = true
      config.lograge.formatter = ::Lograge::Formatters::Json.new

      config.lograge.ignore_actions = ["HealthCheck::HealthCheckController#index"]
      config.lograge.custom_options = lambda { |event| HubriseInitializer::Lograge.custom_options(event) }
      config.lograge.custom_payload { |controller| HubriseInitializer::Lograge.custom_payload(controller) }

      if ENV['RAILS_LOGRAGE_SQL'] == 'true'
        require 'lograge/sql'
        require 'lograge/sql/extension'
      end

    else
      # Log to a file (Rails default)
    end
  end
end
configure_web_console() click to toggle source
# File lib/hubrise_initializer.rb, line 79
def configure_web_console
  Rails.application.configure do
    # web_console is generally enabled on dev only
    return if !config.respond_to?(:web_console)

    # - 172.0.0.0/8: host in docker-compose
    # - 192.168.0.0/16: inter containers network in docker-compose
    # - 10.244.0.0/16: pod networks in Kubernetes
    config.web_console.whitelisted_ips = ['172.0.0.0/8', '192.168.0.0/16', '10.0.0.0/8']
  end
end