class ActionDispatch::DebugExceptions

def log_error(request, wrapper)

def log_error(request, wrapper)
  logger = logger(request)
  return unless logger
  return if !log_rescued_responses?(request) && wrapper.rescue_response?
  trace = wrapper.exception_trace
  message = []
  message << "  "
  if wrapper.has_cause?
    message << "#{wrapper.exception_class_name} (#{wrapper.message})"
    wrapper.wrapped_causes.each do |wrapped_cause|
      message << "Caused by: #{wrapped_cause.exception_class_name} (#{wrapped_cause.message})"
    end
    message << "\nInformation for: #{wrapper.exception_class_name} (#{wrapper.message}):"
  else
    message << "#{wrapper.exception_class_name} (#{wrapper.message}):"
  end
  message.concat(wrapper.annotated_source_code)
  message << "  "
  message.concat(trace)
  if wrapper.has_cause?
    wrapper.wrapped_causes.each do |wrapped_cause|
      message << "\nInformation for cause: #{wrapped_cause.exception_class_name} (#{wrapped_cause.message}):"
      message.concat(wrapped_cause.annotated_source_code)
      message << "  "
      message.concat(wrapped_cause.exception_trace)
    end
  end
  log_array(logger, message, request)
end