class ExtendedLogger::Sink
Constants
- Assertions
Attributes
device[RW]
levels[R]
rules[W]
serializer[R]
Public Class Methods
build(device=nil, color_scheme: nil, format: nil, levels: nil, rules: nil)
click to toggle source
# File lib/extended_logger/sink.rb, line 14 def self.build device=nil, color_scheme: nil, format: nil, levels: nil, rules: nil device ||= $stderr levels ||= Defaults.levels device = File.open device, 'a+' if device.is_a? String device.sync = true if color_scheme == :none or not (device.tty? or device.is_a? StringIO) color_scheme = nil end serializer = Serializer.build log_format: format, color_scheme: color_scheme instance = new device, levels, serializer instance.rules = rules if rules instance end
new(device, levels, serializer)
click to toggle source
# File lib/extended_logger/sink.rb, line 8 def initialize device, levels, serializer @device = device @levels = levels @serializer = serializer end
Public Instance Methods
<<(message)
click to toggle source
# File lib/extended_logger/sink.rb, line 32 def << message message = apply_rules message verbosity_threshold.(message) or return output = serializer.(message) device.write output end
apply_rules(message)
click to toggle source
# File lib/extended_logger/sink.rb, line 42 def apply_rules message rules.reduce message do |message, rule| rule.(message) or return end end
level()
click to toggle source
# File lib/extended_logger/sink.rb, line 48 def level verbosity_threshold.level end
level=(reference)
click to toggle source
# File lib/extended_logger/sink.rb, line 52 def level= reference verbosity_threshold.level = levels.resolve reference end
lower_verbosity()
click to toggle source
# File lib/extended_logger/sink.rb, line 56 def lower_verbosity verbosity_threshold.lower end
raise_verbosity()
click to toggle source
# File lib/extended_logger/sink.rb, line 60 def raise_verbosity verbosity_threshold.raise end
rules()
click to toggle source
# File lib/extended_logger/sink.rb, line 64 def rules @rules ||= [] end
verbosity_threshold()
click to toggle source
# File lib/extended_logger/sink.rb, line 68 def verbosity_threshold @verbosity_threshold ||= VerbosityThreshold.new levels.default end