ASP4
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/ASP4/ErrorHandler/Remote.pm view on Meta::CPAN
package ASP4::ErrorHandler::Remote;
use strict;
use warnings 'all';
use base 'ASP4::ErrorHandler';
use vars __PACKAGE__->VARS;
use LWP::UserAgent;
use HTTP::Request::Common;
use HTTP::Date 'time2iso';
use JSON::XS;
use Data::Dumper;
require ASP4;
our $ua;
sub run
{
my ($s, $context) = @_;
my $error = $Stash->{error};
$s->print_error( $error );
$s->send_error($error);
}# end run()
sub send_error
{
my ($s, $error) = @_;
$ua ||= LWP::UserAgent->new();
$ua->agent( ref($s) . " $ASP4::VERSION" );
my %clone = %$error;
my $req = POST $Config->errors->post_errors_to, \%clone;
$ua->request( $req );
}# end send_error()
1;# return true:
=pod
=head1 NAME
ASP4::ErrorHandler::Remote - Send your errors someplace else via http.
=head1 SYNOPSIS
In your C<asp4-config.json>:
...
"errors": {
"error_handler": "ASP4::ErrorHandler::Remote",
"post_errors_to": "http://errors.ohno.com/post/errors/here/"
},
...
=head1 DESCRIPTION
This class provides a default error handler which does the following:
1) Makes a simple HTML page and prints it to the browser, telling the user
that an error has just occurred.
2) Sends an error notification to the web address specified in the config.
The data contained within the POST will match the public properties of L<ASP4::Error>, like this:
$VAR1 = {
'remote_addr' => '127.0.0.1',
'request_uri' => '/',
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.708 second using v1.00-cache-2.02-grep-82fe00e-cpan-eb20b53101e )