Sha256: 6a1752cafc511c6f318e7f369a1a94c4a986fdd713860ba1e61d5b29637414f0

Contents?: true

Size: 1.25 KB

Versions: 2

Compression:

Stored size: 1.25 KB

Contents

require 'logger'

module ReVIEW
  class Logger < ::Logger
    def initialize(io = $stderr, progname: '--')
      super(io, progname: progname)
      self.formatter = ->(severity, _datetime, name, msg) { "#{severity} #{name}: #{msg}\n" }
    end

    def ttylogger?
      nil
    end

    def success(_log)
      # empty (for backward compatibility)
    end
  end

  begin
    require 'tty-logger'
    class TTYLogger < ::TTY::Logger
      def ttylogger?
        true
      end
    end
  rescue LoadError
    nil
  end

  def self.logger(level: 'info')
    if const_defined?(:TTYLogger)
      @logger ||= TTYLogger.new do |config|
        config.level = level.to_sym
        config.handlers = [
          [:console,
           {
             styles: {
               debug: { label: 'DEBUG' },
               info: { label: 'INFO', color: :magenta },
               success: { label: 'SUCCESS' },
               wait: { label: 'WAIT' },
               warn: { label: 'WARN' },
               error: { label: 'ERROR' },
               fatal: { label: 'FATAL' }
             }
           }]
        ]
      end
    else
      @logger ||= ReVIEW::Logger.new($stderr, progname: File.basename($PROGRAM_NAME, '.*'))
    end
  end

  def self.logger=(logger)
    @logger = logger
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
review-5.1.1 lib/review/logger.rb
review-5.1.0 lib/review/logger.rb