Ruby on Rails 3.1 - регистрация исключений в базе данных - PullRequest
2 голосов
/ 19 февраля 2012

Каков наиболее надежный способ автоматической регистрации каждого исключения в базе данных в rails 3.1 (возможно, с использованием промежуточного программного обеспечения Rails)?

Я знаю, что это может звучать как стандартный вопрос, но большинство ответов, которые я нашел до сих пор, были либо немного устаревшими (rails-2), либо предлагали локальную обработку.

Я смотрел http://railscasts.com/episodes/277-mountable-engines и Райан предлагает использовать

ActiveSupport::Notifications.subscribe "process_action.action_controller" do |name, start, finish, id, payload|
    if payload[:exception]
      name, message = *payload[:exception]
      Uhoh::Failure.create!(:message => message)
    end
end

Но он также говорит

Решение, которое мы будем использовать для этого, не очень эффективно, но оно простое и будет работать для нашего случая.

Есть ли лучшая альтернатива?

У меня есть несколько классов исключений, и я обрабатываю исключение в самом контроллере, но было бы хорошо, чтобы они вошли в определенную таблицу базы данных для анализа.

Я сталкиваюсь с драгоценным камнем exception_logger (https://github.com/defunkt/exception_logger),, но этот камень кажется немного устаревшим (?).

Ответы [ 2 ]

2 голосов
/ 19 февраля 2012

Для, казалось бы, устаревших драгоценных камней, таких как exception_logger, я нахожу полезным проверить вилки других пользователей этого драгоценного камня, используя сетевую функцию GitHub. Обычно вы обнаружите, что кто-то обновил или продолжил поддерживать драгоценный камень, даже если первоначальный автор этого не сделал. Например, сеть для exception_logger довольно активна, особенно этот конкретный форк от QuBiT.

Проверьте Ruby Toolbox - Exception Notification для списка широко используемых инструментов "уведомления об исключениях". К сожалению, большинство из них немного устарели, но описанная выше методика поиска более активных вилок также применима.

Если вы не против платного решения, Airbrake и Exceptional оба работают хорошо (хотя новая структура ценообразования Airbrake делает их весьма запретительными для небольшого проекта; Exceptional по разумной цене).

1 голос
/ 14 мая 2012

Я недавно опубликовал усовершенствованную версию exception_logger, которая построена с возможностью монтирования на движке Rails и теперь доступна с Rails 3.2.x и Rails 4.

Попробуйте это https://github.com/ryancheung/exception_logger

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...