Sha256: 56ac18b8daad1566a0635ef0c2e679cb0c370e901eb65e646bb7d637e1baf3d8

Contents?: true

Size: 1.12 KB

Versions: 1

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require 'logger'

module Getch
  class Log
    def initialize(verbose = false)
      @log_file = '/tmp/log_install.txt'
      @verbose = verbose
      check_file
      init_log
      init_log_text
    end

    def info(msg)
      @logger.info(msg)
      @logger_text.info(msg)
    end

    def error(msg)
      @logger.error(msg)
      @logger_text.error(msg)
    end

    def debug(msg)
      @logger.debug(msg)
      @logger_text.debug(msg)
    end

    def fatal(msg)
      @logger.fatal(msg)
      @logger_text.fatal(msg)
    end

    private

    def check_file
      puts "Creating log at #{@log_file}" unless File.exist? @log_file
    end

    def init_log
      @logger = Logger.new($stdout)
      @logger.level = @verbose ? Logger::DEBUG : Logger::INFO
      @logger.formatter = proc { |severity, _, _, msg|
        "#{severity}, #{msg}\n"
      }
    end

    def init_log_text
      @logger_text = Logger.new(@log_file, 1)
      @logger_text.level = Logger::DEBUG
      @logger_text.formatter = proc { |severity, datetime, _, msg|
        "#{severity}, #{datetime}, #{msg}\n" 
      }
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
getch-0.1.9 lib/getch/log.rb