Sha256: 189fdd3e3131830db381ce4520a0ce48fafee1bec20cd10fdce014693033d018

Contents?: true

Size: 1.19 KB

Versions: 2

Compression:

Stored size: 1.19 KB

Contents

module Endow
  class Logger

    def self.log_connection( service, attempt, attempts=nil )
      log "#{green_prefix} #{service.class.name} (#{attempts_segment attempt, attempts}) #{service_options service}"
    end

    def self.log_graceful_error( msg )
      log "#{red_prefix} #{msg}"
    end

    def self.log( msg )
      return unless logger
      #TODO make this more adaptable
      logger.info( msg )
    end

    def self.logger
      Endow.configuration.logger
    end

    def self.green_prefix
      #TODO change to another ANSI library
      "#{indention}[#{ANSI.green { label }}]"
    end

    def self.red_prefix
      #TODO change to another ANSI library
      "#{indention}[#{ANSI.red { error_label }}]"
    end

    def self.service_options( service )
      service.respond_to?( :options_for_log ) ?
        "with #{service.options_for_log.inspect}" :
        nil
    end

    def self.attempts_segment( attempt, attempts )
      attempts.blank? ?
        "Attempt #{attempt}" :
        "Attempt #{attempt} of #{attempts}"
    end

    def self.label
      "Service Connection"
    end

    def self.error_label
      "Service ERROR"
    end

    def self.indention
      "  "
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
endow-1.2.1 lib/endow/logger.rb
endow-1.2.0 lib/endow/logger.rb