lib/lorekeeper/simple_logger.rb in lorekeeper-2.0.0 vs lib/lorekeeper/simple_logger.rb in lorekeeper-2.1.0

- old
+ new

@@ -26,11 +26,11 @@ }.freeze # \e[colorm sets a color \e[0m resets all properties def log_data(severity, message) color = SEVERITY_TO_COLOR_MAP[severity] - @iodevice.write("\e[#{color}m#{message}\e[0m\n") + @iodevice.write("\e[#{color}m#{message.gsub('\n', "\n").gsub('\t', "\t")}\e[0m\n") end def inspect "Lorekeeper Simple logger. IO: #{@file.inspect}" end @@ -41,19 +41,34 @@ return true if METHOD_SEVERITY_MAP[method_name] < @level log_data(METHOD_SEVERITY_MAP[method_name], "#{message_param}, data: #{data}") end end - def exception(exception, custom_message = nil, custom_data = nil, level = :error) - log_level = METHOD_SEVERITY_MAP[level] || ERROR + # To not raise NoMethodError for the methods defined in JSONLogger + def current_fields(*); end + def state(*); end + def add_thread_unsafe_fields(*); end + def remove_thread_unsafe_fields(*); end + def add_fields(*); end + def remove_fields(*); end + def exception(exception, custom_message = nil, custom_data = nil, custom_level = :error, + message: nil, data: nil, level: nil) + + param_level = level || custom_level + param_data = data || custom_data + param_message = message || custom_message + + log_level = METHOD_SEVERITY_MAP[param_level] || ERROR + if exception.is_a?(Exception) - backtrace = exception.backtrace || [] - message = custom_message || exception.message - log_data(log_level, "#{exception.class}: #{exception.message}; #{message}, data: #{backtrace.join("\n")}") + message = param_message || exception.message + backtrace = "\n\nstack:\n#{exception.backtrace.join("\n")}" if exception.backtrace + data = "\n\ndata:\n#{param_data}" if param_data + log_data(log_level, "#{exception.class}: #{exception.message}; #{message} #{backtrace} #{data}") else log_data(METHOD_SEVERITY_MAP[:warn], 'Logger exception called without exception class.') - error_with_data("#{exception.class}: #{exception.inspect} #{custom_message}", custom_data) + error_with_data("#{exception.class}: #{exception.inspect} #{param_message}", param_data) end end end end