Метод log_error в рельсах 3

Я переключаю свое приложение на Rails 3 и на данный момент обнаруживаю некоторые проблемы с методом log_error. В документе ( http://apidock.com/rails/ActionController/Rescue/log_error ) говорят что последняя версия в 2.3.8 так что в данном случае это нормально что не работает.

Но когда я проверяю альтернативы, они предлагают http://apidock.com/rails/ActionDispatch/ShowExceptions/log_error, который поддерживается в rails 3. Но он все равно говорит мне «неопределенный метод log_error».

Я использую его в своем контроллере приложений следующим образом:

def render_not_found(exception = nil)
  log_error(exception) if exception
  #notify_hoptoad(exception)
  render :template => "/help/404.html.erb", :status => 404
end

def render_error(exception)
  log_error(exception)
  notify_hoptoad(exception)
  render :template => "/help/500.html.erb", :status => 500
end

Как я могу использовать метод log_error в Rails 3? Или есть альтернатива этому методу?


person SteenhouwerD    schedule 25.10.2011    source источник


Ответы (1)


Вы хотите использовать метод private, поэтому вы не можете вызывать его явно.
Я думаю, что вы должны использовать что-то вроде этого, чтобы показать исключение:

message = "\n#{exception.class} (#{exception.message}):\n"
Rails.logger.warn(messafe)

Это всего лишь предположение, поэтому вы можете настроить его для своих нужд.

person bor1s    schedule 25.10.2011
comment
Я расширил это, чтобы использовать это: Rails.logger.error("\n#{exception.class} (#{exception.message}):\n #{Rails.backtrace_cleaner.clean(exception.backtrace).join("\n ")}") - person Carson Reinke; 28.02.2012