lib/ougai/logger.rb in ougai-0.8.0 vs lib/ougai/logger.rb in ougai-0.9.0

- old
+ new

@@ -12,57 +12,43 @@ @formatter = create_formatter end def debug(message = nil, ex = nil, data = nil, &block) return true if level > DEBUG - if block_given? - args = yield - else - args = [message, ex, data] - end - super(to_item(args), &nil) + args = block ? yield : [message, ex, data] + add(DEBUG, to_item(args)) end - def info(message = nil, ex = nil, data = nil) + def info(message = nil, ex = nil, data = nil, &block) return true if level > INFO - if block_given? - args = yield - else - args = [message, ex, data] - end - super(to_item(args), &nil) + args = block ? yield : [message, ex, data] + add(INFO, to_item(args)) end - def warn(message = nil, ex = nil, data = nil) + def warn(message = nil, ex = nil, data = nil, &block) return true if level > WARN - if block_given? - args = yield - else - args = [message, ex, data] - end - super(to_item(args), &nil) + args = block ? yield : [message, ex, data] + add(WARN, to_item(args)) end - def error(message = nil, ex = nil, data = nil) + def error(message = nil, ex = nil, data = nil, &block) return true if level > ERROR - if block_given? - args = yield - else - args = [message, ex, data] - end - super(to_item(args), &nil) + args = block ? yield : [message, ex, data] + add(ERROR, to_item(args)) end - def fatal(message = nil, ex = nil, data = nil) - if block_given? - args = yield - else - args = [message, ex, data] - end - super(to_item(args), &nil) + def fatal(message = nil, ex = nil, data = nil, &block) + return true if level > FATAL + args = block ? yield : [message, ex, data] + add(FATAL, to_item(args)) end + def unknown(message = nil, ex = nil, data = nil, &block) + args = block ? yield : [message, ex, data] + add(UNKNOWN, to_item(args)) + end + def self.broadcast(logger) Module.new do |mdl| ::Logger::Severity.constants.each do |severity| method_name = severity.downcase.to_sym @@ -83,39 +69,55 @@ private def to_item(args) msg, ex, data = args + if ex.nil? + create_item_with_1arg(msg) + elsif data.nil? + create_item_with_2args(msg, ex) + elsif msg + create_item_with_3args(msg, ex, data) + else # No args + { msg: @default_message } + end + end + + def create_item_with_1arg(msg) item = {} - if ex.nil? # 1 arg + if msg.is_a?(Exception) + item[:msg] = msg.to_s + set_exc(item, msg) + elsif msg.is_a?(Hash) + item[:msg] = @default_message unless msg.key?(:msg) + item.merge!(msg) + else + item[:msg] = msg.to_s + end + item + end + + def create_item_with_2args(msg, ex) + item = {} + if ex.is_a?(Exception) + item[:msg] = msg.to_s + set_exc(item, ex) + elsif ex.is_a?(Hash) + item.merge!(ex) if msg.is_a?(Exception) - item[:msg] = msg.to_s set_exc(item, msg) - elsif msg.is_a?(Hash) - item[:msg] = @default_message unless msg.key?(:msg) - item.merge!(msg) else item[:msg] = msg.to_s end - elsif data.nil? # 2 args - if ex.is_a?(Exception) - item[:msg] = msg.to_s - set_exc(item, ex) - elsif ex.is_a?(Hash) - item.merge!(ex) - if msg.is_a?(Exception) - set_exc(item, msg) - else - item[:msg] = msg.to_s - end - end - elsif msg # 3 args - set_exc(item, ex) if ex.is_a?(Exception) - item.merge!(data) if data.is_a?(Hash) - item[:msg] = msg.to_s - else # No args - item[:msg] = @default_message end + item + end + + def create_item_with_3args(msg, ex, data) + item = {} + set_exc(item, ex) if ex.is_a?(Exception) + item.merge!(data) if data.is_a?(Hash) + item[:msg] = msg.to_s item end def set_exc(item, exc) item[@exc_key] = @formatter.serialize_exc(exc)