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)