summaryrefslogtreecommitdiff
path: root/qa/qa/runtime/logger.rb
blob: a70c8faf7d2b6c5cd5adaa73134adac58261673e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# frozen_string_literal: true

require 'logger'
require 'forwardable'

module QA
  module Runtime
    module Logger
      extend SingleForwardable

      def_delegators :logger, :debug, :info, :warn, :error, :fatal, :unknown

      singleton_class.module_eval do
        attr_writer :logger

        def logger
          @logger ||= ::Logger.new(Runtime::Env.log_destination).tap do |logger|
            logger.level = Runtime::Env.debug? ? ::Logger::DEBUG : ::Logger::ERROR
          end
        end
      end
    end
  end
end