Sha256: 8ebe522216b0d22cb6162d0ae9a42b3b2096619e8fef574fc095880d72751801

Contents?: true

Size: 811 Bytes

Versions: 1

Compression:

Stored size: 811 Bytes

Contents

require_relative '../util/custom_logger'
require_relative '../util/void_logger'
require_relative '../util/custom_formatter'

module MangoPay

  # Provides logger objects.
  class LogProvider

    ENABLE_LOGGING = true
    ENABLE_HTTP_LOGGING = true

    class << self

      def provide(context)
        if needs_http_logger(context) && ENABLE_HTTP_LOGGING\
          || !(needs_http_logger(context) && ENABLE_LOGGING)
          logger = CustomLogger.new(STDOUT)
          logger.progname = context.name
          logger.formatter = CustomFormatter.new
          logger
        else
          VoidLogger.new
        end
      end

      private

      def needs_http_logger(context)
        context.name =~ /HttpClient/ || context.name =~ /Jsonifier/
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mangopay-v4-4.0.0 lib/mangopay/common/log_provider.rb