#!/usr/local/bin/perl -wT use strict; use TEST::App::MainApp; $SIG{__WARN__} = \&warn_handler; redirect_error_log("/export/home/rdave/logs/error_log"); my $app = TEST::App::MainApp() $app->run_loop(); use constant MAX_MSGLEN => 1022; sub warn_handler { my $msg = join "", @_; # print to STDERR $msg = "[" . "$$|" . time2iso() . "] " . $msg; # send in chunks, if necessary while (length $msg > MAX_MSGLEN) { my $chunk = substr($msg, 0, MAX_MSGLEN); $msg = substr($msg, MAX_MSGLEN); warn $chunk, "\n"; } warn $msg; } #### sub run_loop { my ($self) = @_; my $requester = $self->requester; $self->{_REQUEST_NUMBER}=0; # initialize the request counter while (my $input = $requester->new_request()) { $self->_reset_timings; # start request timing begin_timing('REQUEST'); $self->scratch->init; ++$self->{_REQUEST_NUMBER}; warn "[--] Starting a new request $self->{_REQUEST_NUMBER} (Client: $ENV{REMOTE_ADDR}) ...\n"; $self->{_INPUT} = $input; # read application configuration $self->config_object->getConfig($self->name()); # process request $self->_process_request; # finish the request $requester->close_request(); $self->invoke_post_request_callbacks; # end request timing $self->timing('REQUEST', time_since('REQUEST')); warn "[--] Finished handling request $self->{_REQUEST_NUMBER} ...\n"; $self->post_request; }