Class: Tamashii::Logger

Inherits:
Logger
  • Object
show all
Defined in:
lib/tamashii/logger.rb

Defined Under Namespace

Modules: Colors

Constant Summary collapse

FILTER_PARAMS =
%i(token password)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Logger

Returns a new instance of Logger.



36
37
38
39
40
41
42
43
44
45
# File 'lib/tamashii/logger.rb', line 36

def initialize(*args)
  super
  @enable_filter = false
  self.formatter = proc do |severity, datetime, progname, message|
    severity = "UNKNOWN" if severity == "ANY"
    datetime = datetime.strftime("%Y-%m-%d %H:%M:%S")
    progname = " -- #{progname}" if progname
    "[#{datetime}] #{severity}#{progname}\t: #{message}\n"
  end
end

Instance Attribute Details

#enable_filterObject

Returns the value of attribute enable_filter.



30
31
32
# File 'lib/tamashii/logger.rb', line 30

def enable_filter
  @enable_filter
end

Instance Method Details

#filter(progname = nil, **options, &block) ⇒ Object



65
66
67
68
69
70
71
72
# File 'lib/tamashii/logger.rb', line 65

def filter(progname = nil, **options, &block)
  FILTER_PARAMS.each { |param| options[param] = "FILTERED" if options.include?(param) } if @enable_filter
  if block_given?
    yield
  else
    progname
  end % options
end

#format_message(level, *args) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/tamashii/logger.rb', line 47

def format_message(level, *args)
  if schema[Logger.const_get(level.sub "ANY", "UNKNOWN")].to_s.upcase
    color = begin
              Logger::Colors.const_get \
                schema[Logger.const_get(level.sub "ANY", "UNKNOWN")].to_s.upcase
            rescue NameError
              "0;0"
            end
    "\e[#{ color }m#{ format_message_colorless(level, *args) }\e[0;0m"
  else
    format_message_colorless(level, *args)
  end
end

#format_message_colorlessObject



34
# File 'lib/tamashii/logger.rb', line 34

alias format_message_colorless format_message

#info(progname = nil, **options, &block) ⇒ Object Also known as: debug, error, warn, fatal, unknown



74
75
76
77
78
# File 'lib/tamashii/logger.rb', line 74

def info(progname = nil, **options, &block)
  severity = ::Logger.const_get(__callee__.upcase)
  _progname = block_given? ? progname : nil
  add(severity, filter(progname, **options, &block), _progname)
end

#schemaObject



61
62
63
# File 'lib/tamashii/logger.rb', line 61

def schema
  Logger::Colors::SCHEMA[@logdev.dev] || Logger::Colors::SCHEMA[STDOUT]
end