On 01/06/2011 03:29 PM, Carlson, John W. wrote: > Is there some way to set up mason so I get an email when there’s an > error thrown to the error page (and hopefully not more than one for the > same error). >
can't help you with the "not more than one". but i will say that we tend to use the number of "repeats" to gage the magnitude, frequency, urgency, exposure, etc. of the problem. the way we did this is to: use a custom 500 error document for apache ErrorDocument 500 /public/error/500.html then in that file, along with the "pretty" message, we have a call to $m->comp( '/private/functions/send_error_email' ); you can also trigger it manually to get some decent debugging/environmental info for stuff you're working on. form_mailer just uses Net::SMTP, or similar to send the message send_error_email: <%args> $_type => 'error' $_to => '[email protected]' </%args> <%flags> inherit => '/autohandler' </%flags> <%init> %ARGS = ( %{$m->caller_args(-1)}, %ARGS ); my $error_text = "Page is '" . $r->uri() . "'\n\n"; # try to handle an error, if the object exists if ( my $error = $r->pnotes( 'mason_error' ) ) { $error_text .= UNIVERSAL::can( $error, 'as_text' ) ? $error->as_text : $error; $error_text .= "\n\n\n"; } else { $r->warn( "error mailing component called with no pnotes from '".$m->callers(1)->path()."'" ); } $error_text .= "Request Method: '".$r->method()."'\n"; $error_text .= "The Request: '".$r->the_request()."'\n"; $error_text .= "URI: '".$r->uri()."'\n"; $error_text .= "\n\n\n"; $error_text .= "Headers\n"; foreach my $key ( sort keys %{$r->headers_in()} ) { $error_text .= "$key: " . $r->header_in( $key ) . "\n"; } $error_text .= "\n\n\n"; $error_text .= $m->scomp( '/scripts/dump_data_structure', include_html=> 0, '%ARGS' => \%ARGS ); $error_text .= "\n\n\n"; my %hash = ( from=> '[email protected]', header_from=> 'Error Handler<[email protected]>', to=> $_to, subject=> "Mason ".ucfirst( $_type )." on $hostname ".$r->uri(), body=> $error_text, ); $m->comp( '/scripts/form_mailer', %hash ); </%init> <%once> my $hostname = Sys::Hostname::hostname(); </%once> > > > John > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Learn how Oracle Real Application Clusters (RAC) One Node allows customers > to consolidate database storage, standardize their database environment, and, > should the need arise, upgrade to a full multi-node Oracle RAC database > without downtime or disruption > http://p.sf.net/sfu/oracle-sfdevnl > > > ------------------------------------------------------------------------ > > _______________________________________________ > Mason-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/mason-users ------------------------------------------------------------------------------ Learn how Oracle Real Application Clusters (RAC) One Node allows customers to consolidate database storage, standardize their database environment, and, should the need arise, upgrade to a full multi-node Oracle RAC database without downtime or disruption http://p.sf.net/sfu/oracle-sfdevnl _______________________________________________ Mason-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mason-users

