Hi, I have two questions re the Exception Notifier plugin (i.e. which you install via "ruby script/plugin install exception_notification") Q1 - In it''s current setup (where it uses /public/500.html) is it possible to remove the "Status: 500 Internal Server Error Content-Type: text/html" text which seems to mysteriously get place at the top of the page? Q2 - What''s the best way to add dynamic text to the error page? Should I change the following section of the plug-in to point to a normal Rails action/rhtml view? But if I do this would this be making the design brittle, i.e. what happens if there is a Rails internal issue itself which could mean it''s not possible for the error action/rhtml view to work? .................................................................... def render_500 respond_to do |type| type.html { render :file => "#{RAILS_ROOT}/public/500.html", :status => "500 Error" } . . .................................................................... Tks Greg --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
PS. In fact I think I may have been the scenario for which Exception Notification was targeted at. Would the the below be correct: [1] Uncaught Exception (i.e. not expected) => Exception Notification handles these / sends email [2] Caught Exceptions (understood issue - can offer specific user advice) => Use of custom application exception, global handler which can: (a) send email alert, (b) display dynamic text in custom application error view.rhtml. That is concept is you can throw a custom app exception anywhere in a model/controller and not have to worry about adding a handler/view. => QUESTION 1 - Where/how to catch such exception in the one spot and and handle this? Extend Exception Notification plugin? [3] Complex Business Rules (in Model, but not per field) => Use of Rails Validation framework but via adding validations to :base within the error object [4] Per Field Validations => Use of Rails Validations On 5/25/07, Greg Hauptmann <greg.hauptmann.ruby-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > Hi, > > I have two questions re the Exception Notifier plugin (i.e. which you > install via "ruby script/plugin install exception_notification") > > Q1 - In it''s current setup (where it uses /public/500.html) is it possible > to remove the "Status: 500 Internal Server Error Content-Type: text/html" > text which seems to mysteriously get place at the top of the page? > > Q2 - What''s the best way to add dynamic text to the error page? Should I > change the following section of the plug-in to point to a normal Rails > action/rhtml view? But if I do this would this be making the design > brittle, i.e. what happens if there is a Rails internal issue itself which > could mean it''s not possible for the error action/rhtml view to work? > .................................................................... > def render_500 > respond_to do |type| > type.html { render :file => "#{RAILS_ROOT}/public/500.html", > :status => "500 Error" } > . > . > .................................................................... > > > Tks > Greg >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I would also be interested to know how to do what Greg has mentioned. With my web application, it would help me to pindown the issue if I know the ID of the record in question. I''d like to add this to the exception error. Does anyone know the best way to do this? Xin Greg Hauptmann wrote:> Hi, > > I have two questions re the Exception Notifier plugin (i.e. which you > install via "ruby script/plugin install exception_notification") > > Q1 - In it''s current setup (where it uses /public/500.html) is it > possible > to remove the "Status: 500 Internal Server Error Content-Type: > text/html" > text which seems to mysteriously get place at the top of the page? > > Q2 - What''s the best way to add dynamic text to the error page? Should > I > change the following section of the plug-in to point to a normal Rails > action/rhtml view? But if I do this would this be making the design > brittle, i.e. what happens if there is a Rails internal issue itself > which > could mean it''s not possible for the error action/rhtml view to work? > .................................................................... > def render_500 > respond_to do |type| > type.html { render :file => "#{RAILS_ROOT}/public/500.html", > :status > => "500 Error" } > . > . > .................................................................... > > > Tks > Greg-- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Xin, I''ve ended up doing the following so far, some of which are adjustments to Jamis Buck''some "Exception Notification" plugin. I''m still optimizing this for my own usage as I go. Hope this helps (any ideas/feedback welcome): Usage: if error_situation_occurs raise Error.new( "Message to User Here - Will be shown on error page", "Additional message that will go to log file for developers", Logger::ERROR) end Features: * Separate user & developer messages * Do not have to catch such errors back in controller or views as the below-mentioned rails rescue frame work will handle (i.e. less work, cleaner code) * Just need to raise the Error exception which then triggers/implies/carries out: (a) appropriate email message to user (b) developer specific additional message to logs (c) severity of log entry raised (b) triggers Email/SMS alert based on severity of the error (use of Ruby Logger severity levels) ----------------------------------- class Error < RuntimeError attr :developer_message attr :severity def initialize(user, dev=nil, sev=Logger::FATAL) super user # Use normal exception parameter for User Message @developer_message = dev || user # Set developer focused message @severity = sev end end ----------------------------------- def rescue_action_in_public(exception) # Override this Rails method case exception when *exceptions_to_treat_as_404 render_404 else if exception.instance_of?(Error) # Added by Greg # Custom Error (caught) render_custom_error case (exception.severity) when Logger::FATAL # trigger an email/sms for FATALs send_notification(exception) else # no emails/sms otherwise - future step: have this configurable in environment.rb end else # 500 Error (not caught) render_500 send_notification(exception) end end end -------------------------------- def render_custom_error respond_to do |type| type.html { render :template => "error/custom_500_error"} type.all { render :nothing => true, :status => "500 Error" } end end --------------------------------- def log_error(exception) #:doc: # Override this Rails method ActiveSupport::Deprecation.silence do if ActionView::TemplateError === exception logger.fatal(exception.to_s) else if exception.instance_of?(Error) # Added by Greg - logs the User Message, Log/Developer Message and limits stack trace to first 3 lines # Custom Error (caught) logger.error("#{exception.developer_message}\n" + " Exception Class:#{exception.class}\n" + " User Msg: #{exception.message}\n" + " Backtrace:\n " + clean_backtrace(exception)[0..2].join("\n ") + "\n\n" ) else logger.fatal("#{exception.developer_message}\n" + " Exception Class:#{exception.class}\n" + " Backtrace:\n " + clean_backtrace(exception)[0..2].join("\n ") + "\n\n" ) end end end end On 5/30/07, Xin Zheng <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > > I would also be interested to know how to do what Greg has mentioned. > > With my web application, it would help me to pindown the issue if I know > the ID of the record in question. I''d like to add this to the exception > error. > > Does anyone know the best way to do this? > > Xin > > Greg Hauptmann wrote: > > Hi, > > > > I have two questions re the Exception Notifier plugin (i.e. which you > > install via "ruby script/plugin install exception_notification") > > > > Q1 - In it''s current setup (where it uses /public/500.html) is it > > possible > > to remove the "Status: 500 Internal Server Error Content-Type: > > text/html" > > text which seems to mysteriously get place at the top of the page? > > > > Q2 - What''s the best way to add dynamic text to the error page? Should > > I > > change the following section of the plug-in to point to a normal Rails > > action/rhtml view? But if I do this would this be making the design > > brittle, i.e. what happens if there is a Rails internal issue itself > > which > > could mean it''s not possible for the error action/rhtml view to work? > > .................................................................... > > def render_500 > > respond_to do |type| > > type.html { render :file => "#{RAILS_ROOT}/public/500.html", > > :status > > => "500 Error" } > > . > > . > > .................................................................... > > > > > > Tks > > Greg > > > -- > Posted via http://www.ruby-forum.com/. > > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Seemingly Similar Threads
- undefined method `respond_to'' when using Exception Notifier Plugin
- Mocking objects to test Rails Controllers
- Exception Notification plugin options hash handling????? backwards merge?
- Constructing an array of stuff (to send multiple apple push notifications)
- how does Mocha compare in terms of classical vs mock-based testing, and stubbing???