module SheepAst::Log

Logger Wrapper module

@api private

rubocop:disable all

Attributes

logger[RW]

Public Class Methods

new() click to toggle source
Calls superclass method
# File lib/sheep_ast/log.rb, line 28
def initialize
  lev = level_get
  dev = device_get
  @stack_base = stack_base_get
  @loglevel = 0
  set_logger(lev, dev)
  super()
end

Public Instance Methods

ldebug(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 107
def ldebug(msg = '', color_ = :antiquewhite)
  if !ENV['SHEEP_LOG_BT'].nil?
    at = caller[@stack_base]
    if /^(.+?):(\d+)(?::in `(.*)')?/ =~ at
      file = $1 # rubocop: disable all
      line = $2.to_i # rubocop: disable all
    end
    @logger.debug "#{say_class_name} #{msg}"\
      " (at #{File.basename(file)}:#{line})".color(color_)
  else
    @logger.debug "#{say_class_name} #{msg}".color(color_)
  end
end
ldebug2(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 91
def ldebug2(msg = '', color_ = :antiquewhite)
  env = ENV['SHEEP_LOG_LEVEL']
  return if env.nil?

  if env >= 2
    ldebug msg.color(color_)
  end
end
ldebug?() click to toggle source
# File lib/sheep_ast/log.rb, line 101
def ldebug?
  return @loglevel >= 2
end
ldump(msg = '', color_ = :pink) click to toggle source
# File lib/sheep_ast/log.rb, line 60
def ldump(msg = '', color_ = :pink)
  str = msg.color(color_)
  puts str.color(color_)
end
lerror(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 86
def lerror(msg = '', color_ = :antiquewhite)
  @logger.error (say_class_name + msg).color(color_)
end
lfatal(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 81
def lfatal(msg = '', color_ = :antiquewhite)
  @logger.fatal (say_class_name + msg).color(color_)
end
linfo(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 66
def linfo(msg = '', color_ = :antiquewhite)
  @logger.info (say_class_name + msg).color(color_)
end
lprint(msg = '', color_ = :yellow) click to toggle source
# File lib/sheep_ast/log.rb, line 53
def lprint(msg = '', color_ = :yellow)
  str = 'P: '
  str += say_class_name + msg
  puts str.color(color_)
end
lwarn(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 76
def lwarn(msg = '', color_ = :antiquewhite)
  @logger.warn (say_class_name + msg).color(color_)
end
once(sym, &blk) click to toggle source
# File lib/sheep_ast/log.rb, line 131
def once(sym, &blk)
  if !instance_variable_defined? sym
    blk.call
    instance_variable_set sym, true
  end
end
pdebug(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 48
def pdebug(msg = '', color_ = :antiquewhite)
  @logger.debug msg.color(color_)
end
pfatal(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 43
def pfatal(msg = '', color_ = :antiquewhite)
  @logger.fatal msg.color(color_)
end
pinfo(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 38
def pinfo(msg = '', color_ = :antiquewhite)
  @logger.info msg.color(color_)
end
pwarn(msg = '', color_ = :antiquewhite) click to toggle source
# File lib/sheep_ast/log.rb, line 71
def pwarn(msg = '', color_ = :antiquewhite)
  @logger.warn msg.color(color_)
end
set_logger(level, device = nil) click to toggle source
# File lib/sheep_ast/log.rb, line 122
def set_logger(level, device = nil)
  device = $stdout if device.nil?
  dev = T.cast(device, T.any(IO, String))
  @logger = Logger.new(dev)
  @logger.level = level
  @logger.formatter = logformatter
end

Private Instance Methods

class_name() click to toggle source
# File lib/sheep_ast/log.rb, line 142
def class_name
  return T.unsafe(self).class.name.split('::').last
end
device_get() click to toggle source
# File lib/sheep_ast/log.rb, line 205
def device_get
  env = ENV['SHEEP_LOG_PATH']
  return nil if env.nil? || env.empty?
end
level_get() click to toggle source
# File lib/sheep_ast/log.rb, line 188
def level_get
  env = ENV['SHEEP_LOG']
  case env
  when 'DEBUG'
    @loglevel = 2
    return Logger::DEBUG
  when 'INFO'
    @loglevel = 1
    return Logger::INFO
  else
    @loglevel = 0
    return Logger::WARN
  end
end
logformatter() click to toggle source
# File lib/sheep_ast/log.rb, line 161
def logformatter
  proc { |sev, _, _, message|
    case sev
    when 'DEBUG'
      sevr = T.unsafe('D').blue
    when 'ERROR'
      sevr = T.unsafe('E').bg(:red)
    when 'FATAL'
      sevr = T.unsafe('F').magenta
    when 'WARN'
      sevr = T.unsafe('W').color(:indianred)
    when 'INFO'
      sevr = T.unsafe('I')
    else
      sevr = sev
    end

    if !ENV['SHEEP_LOG_MICRO'].nil?
      time = Time.now
      sevr = "#{sevr}[#{time.iso8601(6)}]"
    end
    "#{sevr}: #{message}\n"
  }
end
say_class_name() click to toggle source
# File lib/sheep_ast/log.rb, line 148
def say_class_name
  "#{class_name}> "
end
stack_base_get() click to toggle source
# File lib/sheep_ast/log.rb, line 212
def stack_base_get
  env = ENV['SHEEP_LOG_STACK_BASE']
  return 0 if env.nil? || env.empty?

  return env.to_i
end