class Prefab::LoggerClient
Constants
- BASE
- SEP
Public Class Methods
new(logdev, formatter: nil)
click to toggle source
Calls superclass method
# File lib/prefab/logger_client.rb, line 7 def initialize(logdev, formatter: nil) super(logdev) self.formatter= formatter @config_client = BootstrappingConfigClient.new @silences = Concurrent::Map.new(:initial_capacity => 2) end
Public Instance Methods
add(severity, message = nil, progname = nil)
click to toggle source
# File lib/prefab/logger_client.rb, line 14 def add(severity, message = nil, progname = nil) loc = caller_locations(1, 1)[0] add_internal(severity, message, progname, loc) end
add_internal(severity, message = nil, progname = nil, loc, &block)
click to toggle source
# File lib/prefab/logger_client.rb, line 19 def add_internal(severity, message = nil, progname = nil, loc, &block) path = get_path(loc.absolute_path, loc.base_label) log_internal(message, path, progname, severity, &block) end
debug(progname = nil, &block)
click to toggle source
# File lib/prefab/logger_client.rb, line 47 def debug(progname = nil, &block) add_internal(DEBUG, nil, progname, caller_locations(1, 1)[0], &block) end
debug?()
click to toggle source
# File lib/prefab/logger_client.rb, line 67 def debug? true; end
error(progname = nil, &block)
click to toggle source
# File lib/prefab/logger_client.rb, line 59 def error(progname = nil, &block) add_internal(ERROR, nil, progname, caller_locations(1, 1)[0], &block) end
error?()
click to toggle source
# File lib/prefab/logger_client.rb, line 79 def error? true; end
fatal(progname = nil, &block)
click to toggle source
# File lib/prefab/logger_client.rb, line 63 def fatal(progname = nil, &block) add_internal(FATAL, nil, progname, caller_locations(1, 1)[0], &block) end
fatal?()
click to toggle source
# File lib/prefab/logger_client.rb, line 83 def fatal? true; end
info(progname = nil, &block)
click to toggle source
# File lib/prefab/logger_client.rb, line 51 def info(progname = nil, &block) add_internal(INFO, nil, progname, caller_locations(1, 1)[0], &block) end
info?()
click to toggle source
# File lib/prefab/logger_client.rb, line 71 def info? true; end
level()
click to toggle source
# File lib/prefab/logger_client.rb, line 87 def level DEBUG end
local_log_id()
click to toggle source
# File lib/prefab/logger_client.rb, line 95 def local_log_id Thread.current.__id__ end
log_internal(message, path, progname, severity) { || ... }
click to toggle source
# File lib/prefab/logger_client.rb, line 24 def log_internal(message, path, progname, severity, &block) level = level_of(path) progname = "#{path}: #{progname}" severity ||= UNKNOWN if @logdev.nil? || severity < level || @silences[local_log_id] return true end if progname.nil? progname = @progname end if message.nil? if block_given? message = yield else message = progname progname = @progname end end @logdev.write( format_message(format_severity(severity), Time.now, progname, message)) true end
set_config_client(config_client)
click to toggle source
# File lib/prefab/logger_client.rb, line 91 def set_config_client(config_client) @config_client = config_client end
silence() { |self| ... }
click to toggle source
# File lib/prefab/logger_client.rb, line 99 def silence @silences[local_log_id] = true yield self ensure @silences[local_log_id] = false end
warn(progname = nil, &block)
click to toggle source
# File lib/prefab/logger_client.rb, line 55 def warn(progname = nil, &block) add_internal(WARN, nil, progname, caller_locations(1, 1)[0], &block) end
warn?()
click to toggle source
# File lib/prefab/logger_client.rb, line 75 def warn? true; end
Private Instance Methods
get_path(absolute_path, base_label)
click to toggle source
sanitize & clean the path of the caller so the key looks like log_level.app.models.user
# File lib/prefab/logger_client.rb, line 124 def get_path(absolute_path, base_label) path = absolute_path + "" path.slice! Dir.pwd path.gsub!(/.*?(?=\/lib\/)/im, "") path = "#{path.gsub("/", SEP).gsub(".rb", "")}#{SEP}#{base_label}" path.slice! ".lib" path.slice! SEP path end
level_of(path)
click to toggle source
Find the closest match to 'log_level.path' in config
# File lib/prefab/logger_client.rb, line 109 def level_of(path) closest_log_level_match = @config_client.get(BASE) || :warn path.split(SEP).inject([BASE]) do |memo, n| memo << n val = @config_client.get(memo.join(SEP)) unless val.nil? closest_log_level_match = val end memo end val(closest_log_level_match) end
val(level)
click to toggle source
# File lib/prefab/logger_client.rb, line 136 def val level return Object.const_get("Logger::#{level.upcase}") end