Sha256: 6538e43a92a4be60da18f8d5d5eb637d54c4c578da143355a7aa71894be55f94
Contents?: true
Size: 1.82 KB
Versions: 3
Compression:
Stored size: 1.82 KB
Contents
# frozen_string_literal: true require 'logger' module GetaroundUtils; end module GetaroundUtils::Mixins; end module GetaroundUtils::Mixins::Loggable def loggable_class_name @loggable_class_name ||= is_a?(Class) ? name : self.class.name end def base_append_infos_to_loggable(payload) payload[:origin] = loggable_class_name return unless respond_to?(:append_infos_to_loggable) append_infos_to_loggable(payload) end def loggable_logger_fallback @loggable_logger_fallback ||= Logger.new($stdout) end def loggable_logger (logger if respond_to?(:logger)) || (Rails.logger if defined?(Rails)) || loggable_logger_fallback end def loggable_log(severity, message, payload = {}) base_append_infos_to_loggable(payload) loggable_logger.send(severity.to_sym, msg: message, **payload) end MONITORABLE_LOG_PREFIX = "monitorable_log__" def monitorable_log(event_name, **options) monitorable_threshold = monitorable_threshold(event_name) return if monitorable_threshold.blank? loggable_log( :info, monitorable_log_message(event_name), alert_threshold: monitorable_threshold, **options ) end def monitorable_threshold(event_name) monitorable_threshold = ENV["#{monitorable_log_message(event_name)}_threshold".upcase]&.to_i if monitorable_threshold.nil? && monitorable_rails_config_defined? monitorable_threshold = Rails.application.config.monitorable_log_thresholds&.dig(event_name.to_sym) end monitorable_threshold end def monitorable_log_message(event_name) MONITORABLE_LOG_PREFIX + event_name end private def monitorable_rails_config_defined? defined?(Rails) && Rails.application.config.respond_to?(:monitorable_log_thresholds) && Rails.application.config.monitorable_log_thresholds.respond_to?(:dig) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
getaround_utils-0.2.34 | lib/getaround_utils/mixins/loggable.rb |
getaround_utils-0.2.33 | lib/getaround_utils/mixins/loggable.rb |
getaround_utils-0.2.32 | lib/getaround_utils/mixins/loggable.rb |