lib/ougai/logging.rb in ougai-1.4.3 vs lib/ougai/logging.rb in ougai-1.4.4
- old
+ new
@@ -1,48 +1,77 @@
module Ougai
+ # Common Logging features
module Logging
attr_accessor :with_fields
attr_writer :before_log
+ # Log any one or more of a message, an exception and structured data as DEBUG.
+ # If the block is given for delay evaluation, it returns them as an array or the one of them as a value.
+ # @param message [String] The message to log. Use default_message if not specified.
+ # @param ex [Exception] The exception or the error
+ # @param data [Object] Any structured data
+ # @yieldreturn [String|Exception|Object|Array] Any one or more of former parameters
+ # @return [Boolean] true
def debug(message = nil, ex = nil, data = nil, &block)
log(Logger::DEBUG, message, ex, data, block)
end
+ # Log any one or more of a message, an exception and structured data as INFO.
+ # @return [Boolean] true
+ # @see Logging#debug
def info(message = nil, ex = nil, data = nil, &block)
log(Logger::INFO, message, ex, data, block)
end
+ # Log any one or more of a message, an exception and structured data as WARN.
+ # @return [Boolean] true
+ # @see Logging#debug
def warn(message = nil, ex = nil, data = nil, &block)
log(Logger::WARN, message, ex, data, block)
end
+ # Log any one or more of a message, an exception and structured data as ERROR.
+ # @return [Boolean] true
+ # @see Logging#debug
def error(message = nil, ex = nil, data = nil, &block)
log(Logger::ERROR, message, ex, data, block)
end
+ # Log any one or more of a message, an exception and structured data as FATAL.
+ # @return [Boolean] true
+ # @see Logging#debug
def fatal(message = nil, ex = nil, data = nil, &block)
log(Logger::FATAL, message, ex, data, block)
end
+ # Log any one or more of a message, an exception and structured data as UNKNOWN.
+ # @return [Boolean] true
+ # @see Logging#debug
def unknown(message = nil, ex = nil, data = nil, &block)
args = block ? yield : [message, ex, data]
append(Logger::UNKNOWN, args)
end
+ # Creates a child logger and returns it.
+ # @param fields [Hash] The fields appending to all logs
+ # @return [ChildLogger] A created child logger
def child(fields = {})
ChildLogger.new(self, fields)
end
+ # @private
def chain(_severity, _args, _fields, _hooks)
raise NotImplementedError
end
protected
+ # @private
def append(severity, args)
raise NotImplementedError
end
+ # @private
def merge_fields(base_data, new_data)
base_data.merge(new_data) do |_, base_val, new_val|
if base_val.is_a?(Array) and new_val.is_a?(Array)
(base_val + new_val).uniq
else