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