class Log
Attributes
device[W]
Public Class Methods
bare(subject)
click to toggle source
# File lib/log/log.rb, line 64 def self.bare(subject) no_defaults(subject) end
build(subject)
click to toggle source
# File lib/log/log.rb, line 50 def self.build(subject) subject = subject_name(subject) instance = new(subject) Clock::UTC.configure(instance) set_defaults(instance) instance end
configure(receiver, attr_name: nil)
click to toggle source
# File lib/log/log.rb, line 68 def self.configure(receiver, attr_name: nil) attr_name ||= :logger instance = get(receiver) receiver.public_send("#{attr_name}=", instance) instance end
inherited(cls)
click to toggle source
# File lib/log/log.rb, line 16 def self.inherited(cls) cls.class_exec do dependency_module = Module.new do define_singleton_method :included do |reciever_class| reciever_class.class_exec do ::Dependency::Attribute.define(self, :logger, cls) define_method :logger do @logger ||= cls.configure self end end end end const_set :Dependency, dependency_module end end
no_defaults(subject)
click to toggle source
# File lib/log/log.rb, line 58 def self.no_defaults(subject) instance = new(subject) Clock::UTC.configure(instance) instance end
set_defaults(logger)
click to toggle source
# File lib/log/log.rb, line 109 def self.set_defaults(logger) logger.class.add_levels(logger) logger.level = Defaults.level logger.tags = Defaults.tags end
Public Instance Methods
call(message=nil, level=nil, tag: nil, tags: nil, &blk)
click to toggle source
# File lib/log/log.rb, line 75 def call(message=nil, level=nil, tag: nil, tags: nil, &blk) tag = Array(tag) tags = Array(tags) tags = tags + tag assure_level(level) tag!(tags) if write?(level, tags) if block_given? message = blk.call end raise ArgumentError, "Log message not provided" if message.nil? write(message, level, tags) end end
clear()
click to toggle source
# File lib/log/log.rb, line 102 def clear level_names.each do |level_name| remove_level(level_name) end self.level = nil end
device()
click to toggle source
# File lib/log/log.rb, line 42 def device @device ||= Defaults.device end
tag!(tags)
click to toggle source
# File lib/log/log.rb, line 94 def tag!(tags) tags end
telemetry()
click to toggle source
# File lib/log/log.rb, line 46 def telemetry @telemetry ||= ::Telemetry.build end
write?(message_level, message_tags)
click to toggle source
# File lib/log/log.rb, line 98 def write?(message_level, message_tags) write_level?(message_level) && write_tag?(message_tags) end