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
-~----------~----~----~----~------~----~------~--~---
Apparently Analagous 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???