Sha256: 2cce351de26f45803a7497dec346c8d0630703fa0c70d87f07d8cbfb3e8782a4

Contents?: true

Size: 810 Bytes

Versions: 5

Compression:

Stored size: 810 Bytes

Contents

# frozen_string_literal: true

require 'logger'
module GetaroundUtils; end
module GetaroundUtils::Mixins; end

module GetaroundUtils::Mixins::Loggable
  def class_name
    @class_name ||= is_a?(Class) ? name : self.class.name
  end

  def base_append_infos_to_loggable(payload)
    payload[:origin] = 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
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
getaround_utils-0.2.20 lib/getaround_utils/mixins/loggable.rb
getaround_utils-0.2.19 lib/getaround_utils/mixins/loggable.rb
getaround_utils-0.2.18 lib/getaround_utils/mixins/loggable.rb
getaround_utils-0.2.16 lib/getaround_utils/mixins/loggable.rb
getaround_utils-0.2.15 lib/getaround_utils/mixins/loggable.rb