Sha256: a84265e74b9b71a8f63100951900716310e0ab827cacb7a42f8b7352edeed09a

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

# :nodoc:
module Zakuro
  #
  # 軽量なロガー
  # @note 本番では使用しない
  #
  class Logger
    LEVELS = {
      none: -1,
      debug: 0,
      info: 1
      # warn : 2,
      # error : 3,
    }.freeze

    LEVEL = LEVELS[:none]

    # @return [String] 呼び出し位置
    attr_reader :location

    def initialize(location:)
      @location = location
    end

    #
    # DEBUGレベルの標準出力を行う
    #
    # @param [String] messages メッセージ
    #
    def debug(*messages)
      return if LEVEL < LEVELS[:debug]

      output('DEBUG', *messages)
    end

    #
    # INFOレベルの標準出力を行う
    #
    # @param [String] messages メッセージ
    #
    def info(*messages)
      return if LEVEL < LEVELS[:info]

      output('INFO', *messages)
    end

    private

    #
    # 標準出力を行う
    #
    # @param [String] level ログレベル
    # @param [String] messages メッセージ
    #
    def output(level, *messages)
      messages.each do |message|
        # :#{Thread.current.backtrace[5]}
        p "[#{level}] #{@location}: #{message}"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
zakuro-0.0.3 lib/zakuro/output/logger.rb
zakuro-0.0.2 lib/zakuro/output/logger.rb
zakuro-0.0.1 lib/zakuro/output/logger.rb
zakuro-0.0.0 lib/zakuro/output/logger.rb