Sha256: e64ecfcfcc839457d854581491562abe9d7b69061f47fd5efe98704d3b21f0d3

Contents?: true

Size: 956 Bytes

Versions: 9

Compression:

Stored size: 956 Bytes

Contents

# frozen_string_literal: true

require 'logger'
require 'rainbow'

module Gitlab
  module QA
    # Common test logger implementation
    #
    class TestLogger
      LEVEL_COLORS = {
        "DEBUG" => :magenta,
        "INFO" => :green,
        "WARN" => :yellow,
        "ERROR" => :red,
        "FATAL" => :indianred
      }.freeze

      Rainbow.enabled = Runtime::Env.colorized_logs?

      def self.logger(level: ::Logger::INFO, source: 'Gitlab QA')
        ::Logger.new($stdout).tap do |logger|
          logger.level = level

          logger.formatter = proc do |severity, datetime, progname, msg|
            date_format = datetime.strftime("%Y-%m-%d %H:%M:%S")
            msg_prefix = "[date=#{date_format} from=#{source}] #{severity.ljust(5)} -- "

            Rainbow(msg_prefix).public_send(LEVEL_COLORS.fetch(severity, :silver)) + "#{msg}\n" # rubocop:disable GitlabSecurity/PublicSend
          end
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
gitlab-qa-7.27.2 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.27.1 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.27.0 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.26.0 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.25.1 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.25.0 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.24.6 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.24.5 lib/gitlab/qa/test_logger.rb
gitlab-qa-7.24.4 lib/gitlab/qa/test_logger.rb