Получение super_exception_notifier для работы - PullRequest
1 голос
/ 15 ноября 2009

Я установил super_exception_notifier, запустив:

sudo gem install super_exception_notifier

и затем я попытался включить его в моем проекте (в котором уже работает рассылка, поскольку он отправляет письма для других целей), например, так. На environment.rb я добавил

# Notification configuration
require 'exception_notifier'
ExceptionNotifier.configure_exception_notifier do |config|
  config[:exception_recipients] = %w(info@isitsciencefiction.com)
  config[:notify_error_codes]   = %W( 404 405 500 503 )
end

и на моем application_controller.rb у меня есть:

require 'exception_notifiable'

class ApplicationController < ActionController::Base
  include ExceptionNotifiable

Я что-то упустил? потому что независимо от того, какую ошибку я генерирую. Либо 404, ошибка маршрута, деление на ноль в контроллере или на консоли, в режиме разработки или производства, я не получаю ни писем, ни сообщений об ошибках, ни чего-либо еще.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 17 ноября 2009

Пабло,

Спасибо за указание на отверстия в документации. Я настрою пустой проект рельсов и затем четко перечислю шаги. Я уже обновил файл Readme в ответ на билеты, созданные вами на github.

Чтобы помочь вам с неотложной проблемой, вот как я ее настроил (и она работает для меня! :) Не все части этого важны для его работы, но я не редактирую это (много), так что вы можете увидеть, что у меня есть:

У меня есть это в моей среде. Rb:

  config.load_paths += %W( #{RAILS_ROOT}/app/middlewares #{RAILS_ROOT}/app/mixins #{RAILS_ROOT}/app/classes #{RAILS_ROOT}/app/mailers #{RAILS_ROOT}/app/observers )

У меня есть инициализатор в config / initializers / super_exception_notification.rb

  #The constants ($) are set in the config/environments files.
  ExceptionNotifier.configure_exception_notifier do |config|
    config[:render_only] = false
    config[:skip_local_notification] = false
    config[:view_path] = 'app/views/errors'
    config[:exception_recipients] = $ERROR_MAIL_RECIPIENTS
    config[:send_email_error_codes] = $ERROR_STATUS_SEND_EMAIL
    #config[:sender_address] = %("RINO #{(defined?(Rails) ? Rails.env : RAILS_ENV).humanize} Error" )
    config[:sender_address] = "errors@swankywebdesign.com"
    config[:email_prefix] = "[RINO #{(defined?(Rails) ? Rails.env : RAILS_ENV).capitalize} ERROR] "
  end

Тогда в моем application.rb у меня есть это:

  include ExceptionNotifiable, CustomEnvironments
  alias :rescue_action_locally :rescue_action_in_public if Environments.local_environments.include?(Rails.env)
  self.error_layout = 'errors'
  self.exception_notifiable_verbose = false
  self.exception_notifiable_silent_exceptions = [MethodDisabled]

Тогда у меня также есть этот миксин в моем каталоге app / mixins:

module CustomEnvironments

  module Environments
    def self.local_environments
      %w( development test )
    end

    def self.deployed_environments
      %w( production staging )
    end
  end
end

Еще одна вещь, этот плагин не отменяет стандарт рельсов, который заключается в том, что вещи на публике являются козырными. Так что если у вас есть 404.html публично, он всегда будет отображаться для 404-х.

  • Peter
0 голосов
/ 15 ноября 2009

Может быть, это как-то связано с этим: http://github.com/pboling/exception_notification

Уведомления по электронной почте будут появляться только в том случае, если IP-адрес определен не как локальный. Вы можете указать определенные адреса, чтобы они всегда были локальными, так что вы получите подробную ошибку вместо общей страницы ошибки. Вы делаете это в вашем контроллере (или даже для каждого контроллера).

consider_local "64.72.18.143", "14.17.21.25"

Также можно указать маски подсети, чтобы все соответствующие адреса считались локальными:

consider_local "64.72.18.143/24"

Адрес "127.0.0.1" всегда считается локальным. Если вы хотите полностью сбросить список всех адресов (например, если вы хотите, чтобы «127.0.0.1» НЕ считался локальным), вы можете просто сделать это где-нибудь в вашем контроллере:

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