class Logasm
Public Class Methods
build(service_name, loggers_config, preprocessors_config = {})
click to toggle source
# File lib/logasm.rb, line 10 def self.build(service_name, loggers_config, preprocessors_config = {}) loggers_config ||= {stdout: nil} preprocessors = preprocessors_config.map do |type, arguments| Preprocessors.get(type.to_s, arguments || {}) end adapters = loggers_config.map do |type, arguments| Adapters.get(type.to_s, service_name, arguments || {}) end new(adapters, preprocessors) end
new(adapters, preprocessors)
click to toggle source
# File lib/logasm.rb, line 21 def initialize(adapters, preprocessors) @adapters = adapters @preprocessors = preprocessors end
Public Instance Methods
debug(*args, &block)
click to toggle source
# File lib/logasm.rb, line 26 def debug(*args, &block) log :debug, *args, &block end
error(*args, &block)
click to toggle source
# File lib/logasm.rb, line 38 def error(*args, &block) log :error, *args, &block end
fatal(*args, &block)
click to toggle source
# File lib/logasm.rb, line 42 def fatal(*args, &block) log :fatal, *args, &block end
info(*args, &block)
click to toggle source
# File lib/logasm.rb, line 30 def info(*args, &block) log :info, *args, &block end
warn(*args, &block)
click to toggle source
# File lib/logasm.rb, line 34 def warn(*args, &block) log :warn, *args, &block end
Private Instance Methods
log(level, *args, &block)
click to toggle source
# File lib/logasm.rb, line 54 def log(level, *args, &block) data = parse_log_data(*args, &block) processed_data = preprocess(data) @adapters.each do |adapter| adapter.log(level, processed_data) end end
parse_log_data(message = nil, metadata = {}, &block)
click to toggle source
# File lib/logasm.rb, line 69 def parse_log_data(message = nil, metadata = {}, &block) return message if message.is_a?(Hash) (metadata || {}).merge(message: block ? block.call : message) end
preprocess(data)
click to toggle source
# File lib/logasm.rb, line 63 def preprocess(data) @preprocessors.inject(data) do |data_to_process, preprocessor| preprocessor.process(data_to_process) end end